(PECL ssh2 >= 1.4)
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.
sessionUn identificador de conexión SSH, obtenido desde la función ssh2_connect().
usernameNombre del usuario para autenticarse en el servidor remoto.
pubkey
Clave pública en formato OpenSSH. Debe parecerse a esto:
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkey
Clave privada OpenSSH. Debe comenzar con:
-----BEGIN RSA PRIVATE KEY-----
passphrase
Si privkey 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 libssh2 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.