SSH:当 KexAlgorithm 被列为可用时,“未找到匹配的密钥交换方法”

SSH:当 KexAlgorithm 被列为可用时,“未找到匹配的密钥交换方法”

当我尝试 ssh 到我的一个交换机时,出现以下错误:

$ ssh remotehost
Unable to negotiate with 1.2.3.4 port 22: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1

如果我列出可用的密钥交换算法,我可以看到我们确实有它;

$ ssh -Q kex
...
...
diffie-hellman-group14-sha1
...

手动将其指定为选项确实有效,并且可以为其创建一个 .ssh/config 条目,但如果它在 kex 列表中,难道不应该自动选择它吗?

ssh -o KexAlgorithms=diffie-hellman-group14-sha1 user@remotehost

.ssh/配置

Host remotehost
    KexAlgorithms +diffie-hellman-group14-sha1

答案1

在最近的 SSH 版本中,diffie-hellman-group1-sha1 密钥交换方法默认处于禁用状态。配置选项是您执行此操作的唯一方法。检查openssh 遗留问题页面了解详情

答案2

为我工作:

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc user@remotehost

对我来说不起作用.ssh/config:

Host remotehost
  Ciphers 3des-cbc
  KexAlgorithms +diffie-hellman-group1-sha1

答案3

对于 MobaXTerm

----
mkdir -p .ssh
touch .ssh/config
----
vim .ssh/config
----
Host 10.64.88.189
#Legacy changes
KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
Ciphers +aes128-cbc

相关内容