ssh2_auth_pubkey_file获取错误回调返回错误(PHP 7.4,Ubuntu 20)

6qfn3psc  于 5个月前  发布在  PHP
关注(0)|答案(2)|浏览(65)

这是我第一次使用公钥和私钥,我得到了回调错误。我一直在努力寻找解决方案,我不确定是否与设置或我正在使用的东西。
我的设置是2个虚拟机(Mint Linux托管服务器,Mac OS X托管客户端)都在桥接适配器上设置两个运行Ubuntu 20.04的虚拟机,都是新安装的这些是用于设置公钥的方向(我已经很流利地执行这个我已经做了好几次)
https://www.linuxbabe.com/linux-server/setup-passwordless-ssh-login
安装完成后,没有任何用于测试目的的释义。我可以SSH进入服务器,没有任何问题。我的cron作业运行shell连接,没有任何问题
我的PHP代码非常简单,可以测试连接性。

$connection = ssh2_connect('192.168.2.199', 22, array('hostkey'=>'ssh-rsa'));
ssh2_auth_pubkey_file($connection, 'sonyrules', '/opt/www-files/id_rsa.pub', '/opt/www-files/id_rsa');

字符串
我得到的第一个错误是它无法读取文件。我通过将文件移出主目录并为其分配自己的目录来修复此错误。该错误更改为当前错误。
PHP警告:ssh2_auth_pubkey_file():使用公钥对sonyrules进行身份验证失败:回调返回错误
这就是我卡住的地方。我看了/var/log/auth. log,我看到下面。我不认为它告诉我为什么我得到一个回调错误。
12月15日14:26:02测试sshd[1359]:从www.example.com端口59666接收到断开连接192.168.2.180:PECL/ssh2(http://pecl.php.net/packages/ssh2)[preauth] Dec 15 14:26:02 test sshd[1359]:Disconnected from authenticating user sonyrules 192.168.2.180 port 59666 [preauth]
如有任何帮助,我们将不胜感激。

vjhs03f7

vjhs03f71#

我最近也遇到了类似的问题。这可能是因为私钥文件。需要PEM格式密钥,但您可能有OpenSSH格式密钥。请检查您的私钥是否以以下开头:-开始OPENSSH PRIVATE KEY-
如果是这种情况,您必须更改格式。只需运行以下命令:

ssh-keygen -p -m PEM -f /path/to/key

字符串
对我来说,这很有效。
您可以查看本文档的第一条注解:https://www.php.net/manual/en/function.ssh2-auth-pubkey-file.php
标签:Openssh Private Key to RSA Private Keyhttps://serverfault.com/questions/939909/ssh-keygen-does-not-create-rsa-private-key

bwleehnv

bwleehnv2#

我通过在cPanel中授权我的公钥解决了这个问题。
转到cPanel->SSH访问->转到您的公钥(不是.pub密钥)->管理
并按照流程进行授权。

相关问题