(PECL ssh2 >= 0.9.0)
ssh2_auth_pubkey_file — Autentica usando uma chave pública
$session
,$username
,$pubkeyfile
,$privkeyfile
,$passphrase
= ?Autentica usando uma chave pública lida de um arquivo.
session
Um identificador de conexão SSH, obtido de uma chamada a ssh2_connect().
username
pubkeyfile
O arquivo de chave pública precisa estar no formato OpenSSH. Deve ser algo como:
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkeyfile
passphrase
Se privkeyfile
estiver criptografado (o que deveria
estar), a senha passphrase
deverá ser fornecida.
Exemplo #1 Autenticação usando uma chave 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 "Autenticação de chave pública bem-sucedida\n";
} else {
die('Falha na autenticação da chave pública');
}
?>
Nota:
A biblioteca libssh subjacente não suporta autenticações parciais de forma muito clara. Ou seja, se for necessário fornecer uma chave pública e uma senha, parecerá que esta função falhou. Neste caso específico, uma falha desta chamada pode significar apenas que a autenticação ainda não foi concluída. É preciso ignorar esta falha, continuar e chamar ssh2_auth_password() para concluir a autenticação.