ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_fileIdentificación utilizando una clave pública

Descripción

ssh2_auth_pubkey_file(
    resource $session,
    string $username,
    string $pubkeyfile,
    string $privkeyfile,
    string $passphrase = ?
): bool

Identificación utilizando una clave pública, leída desde un fichero.

Parámetros

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.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

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');
}
?>

Notas

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.