Ubuntu 升级后-ssh 交换失败

Ubuntu 升级后-ssh 交换失败

将 Ubuntu 从 14.04 升级到 16.04 后,我遇到了一点问题。我尝试通过 SSH 与某些服务器建立 SSH 连接,但升级后在某些情况下我得到了以下输出:

Unable to negotiate with 10.13.45.221 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

我知道添加这个:ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@legacyhost

但是也许有另一种方法可以全局启用它并仅使用 ssh user@host,就像在 14.04 中一样?

答案1

这意味着diffie-hellman-group1-sha1在默认的密钥交换算法集中不存在。

要使ssh选项永久生效,请将以下内容添加到您的~/.ssh/config(或全局/etc/ssh/ssh_config)中:

KexAlgorithms=+diffie-hellman-group1-sha1

如果您希望全局使用指令,请在添加指令时小心HostMatch等选择性声明,因为这些代码片段中的值仅适用于上述集合。如果不确定,请将其放在顶部。

答案2

嗨,大家好,这就是它对我有用的

将上面这一行添加到/etc/ssh/ssh_config

KexAlgorithms diffie-hellman-group1-sha1,[电子邮件保护],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1

取消注释(删除 #)这行Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,然后保存文件并执行这些命令ssh-keygen -Aservice ssh restart

如果您做得好,那么您应该能够使用 ssh,而无需将其添加-oKexAlgorithms=+diffie-hellman-group1-sha1到 ssh 命令中。

答案3

nano /etc/ssh/ssh_config

添加这些:

KexAlgorithms=+diffie-hellman-group1-sha1

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc

出口

service ssh restart

然后你就可以像往常一样远程控制你的主机:

ssh username@hostname
or
ssh -l username hostname

这个对我有用.. :)

相关内容