(PECL ssh2 >= 0.9.0)
ssh2_auth_pubkey_file — Аутентификация с публичным ключем
$session
, string $username
, string $pubkeyfile
, string $privkeyfile
[, string $passphrase
] )Аутентификация с публичным ключем, сохраненном в файле.
session
Идентификатор соединения SSH, полученный из ssh2_connect().
username
pubkeyfile
Публичный ключ в формате OpenSSH. Должен выглядеть похоже на:
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkeyfile
passphrase
Если privkeyfile
зашифрован (как должен бы),
то параметр passphrase
необходим.
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Пример #1 Аутентификация с публичным ключем
<?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 "Public Key Authentication Successful\n";
} else {
die('Public Key Authentication Failed');
}
?>
Замечание:
The underlying libssh library doesn't support partial auths very cleanly That is, if you need to supply both a public key and a password it will appear as if this function has failed. In this particular case a failure from this call may just mean that auth hasn't been completed yet. You would need to ignore this failure and continue on and call ssh2_auth_password() in order to complete authentication.