由于 libcrypto 错误,SSHd 不允许公钥认证

由于 libcrypto 错误,SSHd 不允许公钥认证

我无法使用公钥登录我的服务器。

服务器详细信息:

  • Ubuntu 服务器 16.04LTS
  • SSHd:OpenSSH_7.2p2 Ubuntu-4ubuntu2.4,OpenSSL 1.0.2g 2016 年 3 月 1 日

我的公钥已添加到 /home/user/.ssh/authorized_keys,但是当我尝试连接时,公钥身份验证方法被删除。

/var/log/auth.log中只有一行对应:

sshd[3830]: error: key_verify: error in libcrypto

服务器上的 Ubuntu 很新,刚刚升级到最新的内核和软件包。

谁知道我该如何克服这种情况?

答案1

实际上,增加日志级别并没有显示任何相关内容。

看起来客户端只是跳过了下一个可能的密钥(DSA),而我还没有得到它,然后该方法被放弃并且要求输入密码。

我的客户端是14.04LTS,服务器是16.04LTS。

密钥很久以前就生成了(当我安装 14.04LTS 时)。

解决方案是在客户端重新生成 RSA 密钥,现在一切正常。不知何故,16.04LTS 不向后兼容很久以前生成的密钥。

相关内容