(PECL ssh2 >= 0.9.0)
ssh2_auth_pubkey_file — Identificación utilizando una clave pública
$session
,$username
,$pubkeyfile
,$privkeyfile
,$passphrase
= ?Identificación utilizando una clave pública, leída desde un fichero.
session
Un identificador de conexión SSH, obtenido desde la función ssh2_connect().
username
pubkeyfile
El fichero que contiene la clave pública debe estar en formato OpenSSH. Debe parecerse a esto:
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkeyfile
La clave privada debe estar en formato PEM.
passphrase
Si privkeyfile
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'));
if (ssh2_auth_pubkey_file($connection, 'username',
'/home/username/.ssh/id_rsa.pub',
'/home/username/.ssh/id_rsa', 'secret')) {
echo "Identificación exitosa utilizando una clave pública\n";
} else {
die('Fallo en la identificación utilizando una clave pública');
}
?>
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.