php8.5
Home/ Manual/ ssh2 / functions/ ssh2_auth_pubkey_file

ssh2_auth_pubkey_file

PHP function Edit on GitHub ✎

(PECL ssh2 >= 0.9.0)

Authenticate using a public key read from a file

Description

ssh2_auth_pubkey_file(resource $session, string $username, string $pubkeyfile, string $privkeyfile, [string $passphrase]): bool

Authenticate using a public key read from a file.

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.

pubkeyfile

The public key file needs to be in OpenSSH's format. It should look something like:

ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110

privkeyfile
passphrase

If privkeyfile is encrypted (which it should be), the passphrase must be provided.

Return Values

Success

Examples

Authentication using a public key

php
<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_pubkey_file($connection, 'username',
                          '/home/username/.ssh/id_rsa.pub',
                          '/home/username/.ssh/id_rsa', 'secret')) {
  echo "Public Key Authentication Successful\n";
} else {
  die('Public Key Authentication Failed');
}
?>

Notes

Note

The underlying libssh2 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

Source: reference/ssh2/functions/ssh2-auth-pubkey-file.xml · from the official PHP manual (php/doc-en)