Я написал этот код:
$host = <My Host>;
$port = 22;
$methods = array('hostkey', 'ssh-rsa');
$username = <My User>;
$pub_key = 'c:\\Users\\MyUser\\AppData\\Roaming\\ssh\\UserKeys\\pub_key.pub';
$prv_key = 'c:\\Users\\MyUser\\AppData\\Roaming\\ssh\\UserKeys\\prv_key';
print "<pre>";
var_export(file_get_contents($pub_key));
print "</pre>";
print "<pre>";
var_export(file_get_contents($prv_key));
print "</pre>";
$connection = ssh2_connect($host, 22, $methods);
if (ssh2_auth_pubkey_file($connection, $username, $pub_key, $prv_key)){
echo "Ok!!!!\n";
}else{
echo "Ko!!!!";
}
Когда я запускаю код, он возвращает:
Warning: ssh2_auth_pubkey_file(): Authentication failed for using public key: Callback returned error in....
Может ли кто-нибудь помочь мне решить эту проблему?
Можете ли вы войти в систему, используя это имя пользователя и ключ, используя любой клиент SFTP/SSH с того же компьютера, на котором выполняется ваш PHP-код?
Да, я могу! FileZilla работает хорошо! www-data может получить доступ к открытому и закрытому ключу.
Возможный дубликат Аутентификация ssh2_auth_pubkey_file всегда завершается ошибкой
Как выглядят ваши два ключевых файла? Покажите/опишите их структуру + Покажите файл журнала FileZilla. + Вы пробовали вместо этого библиотеку phpseclib?
Phpseclib работает нормально, спасибо
можно ли работать с закрытым/открытым ключом, используя phpseclib?
Обратите внимание, если вы все еще не можете заставить его работать, это может быть формат ключа, я решил с помощью ssh-keygen -m PEM -t rsa ;)





