Debian
如何在 Debian 8.0 上啟用 diffie-hellman-group1-sha1 密鑰交換?
我無法通過 ssh 連接到要求
diffie-hellman-group1-sha1
密鑰交換方法的伺服器:ssh 123.123.123.123 Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
如何
diffie-hellman-group1-sha1
在 Debian 8.0 上啟用密鑰交換方法?我已經嘗試(如建議的here)
- 將以下行添加到我的
/etc/ssh/ssh_config
KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1 Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
- 重新生成密鑰
ssh-keygen -A
- 重啟ssh
service ssh restart
但仍然得到錯誤。
OpenSSH 網站有一個專門討論遺留問題的頁面,例如這個問題。它在客戶端建議以下方法:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123
或更永久地,添加
Host 123.123.123.123 KexAlgorithms +diffie-hellman-group1-sha1
到
~/.ssh/config
.這將啟用客戶端上的舊算法,允許它連接到伺服器。
我嘗試了這個解決方案,但我的問題是我有許多(舊版)客戶端連接到我最近升級的伺服器(ubuntu 14 -> ubuntu 16)。
從 openssh6 -> openssh7 的更改預設禁用
diffie-hellman-group1-sha1
密鑰交換方法。在閱讀了這個和這個之後,我想出了我需要對
/etc/ssh/sshd_config
文件進行的更改:#Legacy changes KexAlgorithms +diffie-hellman-group1-sha1 Ciphers +aes128-cbc
但更廣泛的遺留變化是(取自此處)
#Legacy changes KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1 Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr