Debian

如何在 Debian 8.0 上啟用 diffie-hellman-group1-sha1 密鑰交換?

  • August 18, 2020

我無法通過 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

  1. 將以下行添加到我的/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
  1. 重新生成密鑰
ssh-keygen -A
  1. 重啟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

引用自:https://unix.stackexchange.com/questions/340844