ssh2_auth_pubkey
(PECL ssh2 >= 1.4.0)
ssh2_auth_pubkey — Authenticate using a public key in a variable
Description
ssh2_auth_pubkey(
resource
string
string
string
string
): bool
resource
$session,string
$username,string
$pubkey,string
$privkey,string
$passphrase = ?): bool
Authenticate using a public key in a variable.
Parameters
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
privkeyis encrypted (which it should be), thepassphrasemust be provided.
Examples
Example #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');
}
?>Notes
Note: 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.
See Also
- ssh2_auth_pubkey_file() - Authenticate using a public key read from a file
↑ and ↓ to navigate • Enter to select • Esc to close • / to open