(PECL ssh2 >= 0.9.0)
ssh2_auth_pubkey_file — Identification en utilisant une clé publique
$session
, string $username
, string $pubkeyfile
, string $privkeyfile
[, string $passphrase
] )Identification en utilisant une clé publique, lue depuis un fichier.
session
Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().
username
pubkeyfile
Le fichier contenant la clé publique doit être au format OpenSSH. Il doit ressembler à ceci :
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkeyfile
La clé privée doit être au format PEM
passphrase
Si privkeyfile
est chiffré (et doit l'être),
la passe-phrase doit être fournie.
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
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('Echec 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 vous devez 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. Vous devez ignorer cette erreur et continuer avec l'appel ssh2_auth_password() pour terminer l'authentification.