Я должен подключиться к серверу SFTP.Сначала я использовал этот код:
$Key = new RSA();
$Key->setPassword("password");
$Key->loadKey(file_get_contents('path_to_RSA_private_key'));
$sftp = new SFTP($IP_addr, $port_number);
if (!$sftp->login('username', $Key))
echo date('Y/m/d H:i:s').' SFTP login failed to $IP_addr';
Он работал хорошо.Я знаю, что phpseclib использует по умолчанию sha1, и я хотел бы использовать sha256.Поэтому я попытался с этим кодом:
$Key = new RSA();
$Key->setHash('sha256');
$Key->setMGFHash('sha256');
$Key->setPassword("password");
$Key->loadKey(file_get_contents('path_to_RSA_private_key'));
$sftp = new SFTP($IP_addr, $port_number);
if (!$sftp->login('username', $Key))
echo date('Y/m/d H:i:s').' SFTP login failed to $IP_addr';
Но это не работает.Я получил это сообщение на сервере:
error: key_verify: invalid format
При необходимости я могу отправить отладочные сообщения на стороне сервера.Этот сервер использует значения по умолчанию для параметров Ciphers, KexAlgorithms и MAC.
Спасибо за помощь.