当前位置: 首页 > 知识库问答 >
问题:

ssh2_auth_pubkey_file得到错误回调返回错误(PHP 7.4,Ubuntu 20)

申屠昆
2023-03-14

这是我第一次使用公钥,我收到回拨错误。我一直在试图找到一个解决方案,我不确定它是否与设置或我正在使用的东西。

我的设置是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\u auth\u pubkey\u file():使用公钥对sonyrules进行身份验证失败:回调在中返回错误

这就是我被困的地方。我查看了/var/log/auth。我看到下面的日志。我想这并不能告诉我为什么会出现回调错误。

Dec 15 14:26:02测试sshd[1359]:收到192.168的断开连接。2.180端口59666:11:PECL/ssh2(http://pecl.php.net/packages/ssh2)[preauth]Dec 15 14:26:02 test sshd[1359]:已断开与验证用户sonyrules 192.168的连接。2.180端口59666[预授权]

任何帮助都将不胜感激。

共有1个答案

楚元章
2023-03-14

我最近也面临类似的问题。可能是因为私钥文件。需要PEM格式密钥,但可能需要OpenSSH格式密钥。请检查您的私钥是否以: -----开始打开私钥-----

如果是这种情况,您必须更改格式。只需运行以下命令:

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

对我来说,这很有效。

你可以看看这个留档的第一条评论:https://www.php.net/manual/en/function.ssh2-auth-pubkey-file.php

还有这些帖子:Openssh私钥到RSA私钥https://serverfault.com/questions/939909/ssh-keygen-does-not-create-rsa-private-key

 类似资料:
  • 基类控制器里有error方法,用于api的错误消息返回输出 /** * 操作错误跳转的快捷方法 * @access protected * @param mixed $msg 提示信息,若要指定错误码,可以传数组,格式为['code'=>您的错误码,'msg'=>'您的错误消息'] * @param mixed $data 返回的数据 * @par

  • 我想一次更新文档的所有选项卡。文档的信封是从一个模板创建的,该模板已经定义了收件人和选项卡,我使用以下负载调用这个endpoint来更新选项卡:

  • 我是JS的学生。我有一段代码返回了一个错误。 这是返回的语法错误。你们能解释一下我做错了什么吗?

  • 我在研究JNI的回电 null

  • 问题内容: 目前正被此错误推高。 我正在使用mongodb的mongojs包装器运行node.js应用程序。我在默认端口上启动mongod,然后运行 但是err和user都为“ null”。据我所知,err应该填充某种数据,即使找不到任何东西。 如何使回调函数正常工作?请原谅新手问题。 问题答案: 当查询找不到至少一个匹配的文档时,则将回调的第二个参数(在这种情况下)设置为。这不是错误,也是。因此

  • 我正在尝试进行rest api调用,但一直收到。从日志中可以看出,我的POJO的字段之一似乎存在问题。 我的POJO: 在我的中 运行上述代码时,我得到以下错误: