我安装openssh-server
了Ubuntu server 16.04
,并/etc/ssh/ssh_config
添加了:
MaxAuthTries 3
PasswordAuthentication YES
然后重启 ssh 服务器。当我尝试从另一台电脑使用 ssh 连接时,我收到一条消息
Algorithm Negotiation failed
回到服务器,当我运行时systemctl status ssh
出现此错误
Unable to negotiate with 192.168.0.132 port 63428: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
我编辑/etc/ssh/sshd_config
添加我添加行
KexAlgorithms=+diffie-hellman-group1-sha1
现在我得到了一个不同的错误,当我运行systemctl status ssh
Unable to negotiate with 192.168.0.132 port 63428: no matching key exchange method found. Their offer: aes128-cbc,3des-cbc, blowfish-cbc,cast128-cbc,twofish-cbc,arcfour [preauth]
答案1
您正在从某个非常旧的 SSH 客户端连接到新系统(Ubuntu 16.04),该客户端不支持任何现代算法,这就是连接失败的原因。您确实应该更新您的客户端。
或者继续启用目前可能不安全的过时协议。使用
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
你应该能够连接。
答案2
将以下代码添加到文件:/etc/ssh/sshd_config
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
现在重启服务