PHP 8.5.4 Released!

ssh2_auth_pubkey

(PECL ssh2 >= 1.4.0)

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

Описание

ssh2_auth_pubkey(
    resource $session,
    string $username,
    string $pubkey,
    string $privkey,
    string $passphrase = ?
): bool

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

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

session
Идентификатор канала SSH-соединения, который вернула функция ssh2_connect().
username
Имя пользователя, от лица которого требуется выполнить аутентификацию на удалённом сервере.
pubkey
Открытый ключ в формате OpenSSH, строка наподобие: ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkey
Закрытый OpenSSH-ключ, который начинается со строки: -----BEGIN RSA PRIVATE KEY-----
passphrase
Парольная фраза для расшифровки закрытого ключа privkey. Парольную фразу передают в параметр passphrase, только если выполняются требования безопасности и закрытый ключ хранится в зашифрованном виде.

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Примеры

Пример #1 Пример аутентификации с открытым ключом

<?php

$connection
= ssh2_connect('shell.example.com', 22, array('hostkey' => 'ssh-rsa'));
$publicKey = file_get_contents('/home/username/.ssh/id_rsa.pub');
$privateKey = file_get_contents('/home/username/.ssh/id_rsa');

if (
ssh2_auth_pubkey(
$connection,
'username',
$publicKey,
$privateKey,
'secret'
)) {
echo
"Клиент прошёл аутентификацию по открытому ключу\n";
} else {
die(
'Открытый ключ не подтвердил подлинность клиента');
}

Примечания

Замечание: Библиотека libssh, на базе которой работает PHP-модуль SSH2, не поддерживает частичное подтверждение подлинности на серверах с многофакторной аутентификацией, при которой требуется проверка и открытого ключа, и пароля. Поэтому на шаге проверки открытого ключа возврат значения false часто указывает не на ошибку, а только на незавершённость процесса аутентификации. При многоступенчатой аутентификации ошибку игнорируют и вызывают функцию ssh2_auth_password(), чтобы завершить аутентификацию.

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

  • ssh2_auth_pubkey_file() - Аутентифицирует клиента путём считывания открытого ключа из файла
Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top