ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_fileАутентифицирует клиента путём считывания открытого ключа из файла

Описание

ssh2_auth_pubkey_file(
    resource $session,
    string $username,
    string $pubkeyfile,
    string $privkeyfile,
    string $passphrase = ?
): bool

Функция аутентифицирует клиента по открытому ключу, который считывает из файла.

Список параметров

session
Идентификатор канала SSH-соединения, который вернула функция ssh2_connect().
username
Имя пользователя, от лица которого требуется выполнить аутентификацию на удалённом сервере.
pubkeyfile
Открытый ключ в формате OpenSSH, строка наподобие: ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkeyfile
Путь к файлу закрытого OpenSSH-ключа.
passphrase
Парольная фраза для расшифровки закрытого ключа privkey. Парольную фразу передают в параметр 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(), чтобы завершить аутентификацию.

Смотрите также

  • ssh2_auth_pubkey() - Аутентифицирует клиента по открытому ключу в переменной