Вход на SFTP-сервер с использованием сертификата клиента ECDSA с использованием phpseclib - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь войти на SSH-сервер, используя клиентский сертификат ECDSA на PHP.Я использую ветку master dev для phpseclib, которая включает поддержку ECDSA с октября 2018 года.

Я взял пример сценария для входа на сервер ssh и адаптировал его для использования моего сертификата:

use phpseclib\Crypt\ECDSA;
use phpseclib\Net\SFTP;

$sftp = new SFTP('server.ssh');
$key = new ECDSA();

echo $key->load(file_get_contents('/path/to/clientkey'));

if (!$sftp->login('username', $key)) {
    print_r($sftp->getErrors());
    echo 'Login Failed';
} else {
    echo 'Login Succeeded!';
}

Этот код в значительной степени мгновенно выдает следующее (поэтому время ожидания отсутствует):

1 // so the key loads successfully

Array
(
) // no errors that we know of
Login Failed // but no success either

Те же данные для входа в систему работают с использованием командной строки sftp на том же компьютере.Удаленный сервер поддерживает только SFTP-соединения, поэтому я не могу попробовать обычное SSH2-соединение.

Это должно работать еще?Это так должно работать или в моем коде ошибка?

...