ssh2_auth_pubkey

Authenticate using a public key in a variable

説明

bool ssh2_auth_pubkey(
    resource $session,
    string $username,
    string $pubkey,
    string $privkey,
    string $passphrase = ?
)

Authenticate using a public key in a variable.

パラメータ

session
An SSH connection link identifier, obtained from a call to ssh2_connect.
username
Name of the user to authenticate as on the remote server.
pubkey
Public key in OpenSSH's format. It should look something like: ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkey
Private OpenSSH key. It should begin with: -----BEGIN RSA PRIVATE KEY-----
passphrase
If privkey is encrypted (which it should be), the passphrase must be provided.

戻り値

成功した場合に true を、失敗した場合に false を返します。

例1 Authentication using a public key

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));
$publicKey = file_get_contents('/home/username/.ssh/id_rsa.pub');
$privateKey = file_get_contents('/home/username/.ssh/id_rsa');

if (ssh2_auth_pubkey($connection, 'username',
                     $publicKey,
                     $privateKey, 'secret')) {
  echo "Public Key Authentication Successful\n";
} else {
  die('Public Key Authentication Failed');
}
?>

注意

注意: The underlying libssh library doesn't support partial auths very cleanly. That is, if you need to supply both a public key and a password it will appear as if this function has failed. In this particular case a failure from this call may just mean that auth hasn't been completed yet. You would need to ignore this failure and continue on and call ssh2_auth_password in order to complete authentication.

参考

  • ssh2_auth_pubkey_file