无法使用密钥登录 SSH,总是询问密码

无法使用密钥登录 SSH,总是询问密码

有一个问题困扰了我几天。

我有 3 台服务器。 A、B 和 C。

我想通过 ssh 从 A 访问 B 和 C。我已经在 A、B、C 上设置了公钥/authorized_keys ...。

场景#1:通过 ssh 从 A 访问 B(.133)——成功!场景#2:通过 ssh 从 A 访问 C(.148) -- 失败,要求输入密码!

比较他们的调试信息:

成功案例1个;它是 OpenSSH 5.1,它更喜欢 ssh-rsa 密钥:

debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-
[email protected],[email protected],ssh-rsa.

2 失败案例;它是OpenSSH6.2,它不喜欢ssh-rsa密钥:

debug3: order_hostkeyalgs: prefer hostkeyalgs: ecdsa-sha2-nistp256
[email protected],[email protected],ecdsa-   
[email protected],ecdsa-sha2-nistp256,ecdsa-
sha2-nistp384,ecdsa-sha2-nistp521

我的密钥是通过命令“ssh-keygen -t rsa”生成的,所以,我认为,它是 rsa 密钥。不确定这是否是关键原因。

如何在 OpenSSH(sshd) 中配置“首选主机密钥”?

或者也许这个问题是由其他原因引起的?

===debug for Scenario #1 and #2 :===
See it at: diffchecker.com/tj5v3iog 

(此区域不允许发布太多调试信息:( )

答案1

看起来您的 sshd 配置为接受 ecdsa 密钥。
您可以在服务器端追踪为什么它只查找 ECDSA 密钥而不是 RSA,或者您可以通过提供 ECDSA 密钥从客户端解决此问题。

从客户端创建和使用 ecdsa 密钥的步骤如下:

  1. ssh-keygen -t ecdsa -b 256 -N '' -f ~/.ssh/id_ecdsa
  2. ssh-copy-id -i ~/.ssh/id_ecdsa C

请注意 ssh-keygen 中-N的两个单引号 (2x ') 而不是单个双引号。

相关内容