(PECL ssh2 >= 0.9.0)
ssh2_auth_pubkey_file — Аутентифицирует клиента путём считывания открытого ключа из файла
$session,$username,$pubkeyfile,$privkeyfile,$passphrase = ?Функция аутентифицирует клиента по открытому ключу, который считывает из файла.
sessionusernamepubkeyfileprivkeyfilepassphraseprivkey.
Парольную фразу передают в параметр 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 "Клиент прошёл аутентификацию по открытому ключу\n";
} else {
die('Открытый ключ не подтвердил подлинность клиента');
}Замечание: Библиотека libssh, на базе которой работает PHP-модуль SSH2, не поддерживает частичное подтверждение подлинности на серверах с многофакторной аутентификацией, при которой требуется проверка и открытого ключа, и пароля. Поэтому на шаге проверки открытого ключа возврат значения
falseчасто указывает не на ошибку, а только на незавершённость процесса аутентификации. При многоступенчатой аутентификации ошибку игнорируют и вызывают функцию ssh2_auth_password(), чтобы завершить аутентификацию.