(PECL ssh2 >= 1.4.0)
ssh2_auth_pubkey — Identification en utilisant une clé publique depuis une variable
$session,$username,$pubkey,$privkey,$passphrase = ?Identification en utilisant une clé publique depuis une variable.
sessionusernamepubkeyssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkey-----BEGIN RSA PRIVATE KEY-----
passphraseprivkey est chiffré (et devrait 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'));
$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 "Identification réussie en utilisant une clé publique\n";
} else {
die('Échec de l\'identification en utilisant une clé publique');
}
?>Note: La bibliothèque libssh 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.