(PECL ssh2 >= 1.4.0)
ssh2_auth_pubkey — Identificación utilizando una clave pública en una variable
$session,$username,$pubkey,$privkey,$passphrase = ?Identificación utilizando una clave pública en una variable.
sessionusernamepubkeyssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkey-----BEGIN RSA PRIVATE KEY-----
passphraseprivkey está cifrado (y debe estarlo),
la frase de paso debe ser proporcionada.
Ejemplo #1 Identificación utilizando una clave pública
<?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');
}
?>Nota: La biblioteca libssh subyacente no soporta muy limpiamente las autenticaciones parciales. Es decir, que si debe proporcionar a la vez una clave pública y una contraseña, entonces parecerá como si la función estuviera en error. En este caso particular, un error en esta llamada puede simplemente significar que la autenticación no está aún terminada. Debe ignorar este error y continuar con la llamada ssh2_auth_password() para terminar la autenticación.