【问题标题】:ssh2_auth_pubkey_file getting error Callback returned error (PHP 7.4, Ubuntu 20)ssh2_auth_pubkey_file 获取错误回调返回错误(PHP 7.4,Ubuntu 20)
【发布时间】:2021-03-26 04:57:17
【问题描述】:

这是我第一次使用公共私钥,我收到回调错误。我一直在努力寻找解决方案,但我不确定它是否与设置有关或我正在使用什么。

我的设置是 2 个 Virtual BOX VM(托管服务器的 Mint Linux,托管客户端的 Mac OS X) 两者都设置在桥接适配器上 两个 VM 都运行 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]:从 192.168.2.180 端口 59666:11 收到断开连接:PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth] 12 月 15 日 14:26:02 测试 sshd[1359]:与验证用户 sonyrules 192.168.2.180 端口 59666 [preauth] 断开连接

任何帮助将不胜感激。

【问题讨论】:

    标签: php ubuntu ssh


    【解决方案1】:

    我最近也遇到了类似的问题。这可能是因为私钥文件。需要 PEM 格式密钥,但您可能有 OpenSSH 格式密钥。 请检查您的私钥是否以此开头: -----开始 OPENSSH 私钥-----

    如果是这种情况,您必须更改格式。运行这个:

    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 Key https://serverfault.com/questions/939909/ssh-keygen-does-not-create-rsa-private-key

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-14
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2011-12-05
      • 2013-10-03
      相关资源
      最近更新 更多