(PECL ssh2 >= 0.9.0)
ssh2_auth_pubkey_file — Identification en utilisant une clé publique lue depuis un fichier
$session,$username,$pubkeyfile,$privkeyfile,$passphrase = ?Identification en utilisant une clé publique, lue depuis un fichier.
sessionUn identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().
usernameNom de l'utilisateur à authentifier sur le serveur distant.
pubkeyfileLe fichier contenant la clé publique doit être au format OpenSSH. Il doit ressembler à ceci :
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkeyfileLa clé privée doit être au format PEM
passphrase
Si privkeyfile est chiffré (et doit l'être),
la passe-phrase doit être fournie.
Exemple #1 Identification en utilisant une clé publique
<?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 "Identification réussie en utilisant une clé publique\n";
} else {
die('Échec de l\'identification en utilisant une clé publique');
}
?>Note:
La bibliothèque libssh2 sous-jacente ne supporte pas très proprement les authentifications partielles. C'est-à-dire que si l'on doit fournir à la fois une clé publique et un mot de passe alors cela apparaitra comme si la fonction est en erreur. Dans ce cas particulier, une erreur sur cet appel peut juste signifier que l'authentification n'est pas encore terminée. Il faut ignorer cette erreur et continuer avec l'appel ssh2_auth_password() pour terminer l'authentification.