当我尝试 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