如何在Debian 8.0上启用diffie-hellman-group1-sha1密钥交换?


64

我无法连接到要求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上启用密钥交换方法?

我曾尝试(如建议在这里),以

  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
    
  2. 重新生成密钥

    ssh-keygen -A
    
  3. 重新启动ssh

    service ssh restart
    

    但仍然得到错误。


我有同样的发生在我和Debian 9
瑞˚F里贝罗

试试这个diffie-hellman-group-exchange-sha256
Miguel

Answers:


91

OpenSSH网站上有一个专门处理此类遗留问题的页面。它在客户端上建议以下方法:

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123

或更永久地添加

Host 123.123.123.123
    KexAlgorithms +diffie-hellman-group1-sha1

~/.ssh/config

这将在客户端上启用旧算法,从而使其能够连接到服务器。


我今天也遇到了这个问题,但这是由于网络。我更改了网络,问题消失了
Luv33preet

在上面尝试过,但得到了Unable to negotiate with 192.168.1.123 port 22222: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes256-cbc,twofish256-cbc,twofish-cbc,twofish128-cbc,blowfish-cbc
typelogic '18

@ifelsemonkey是一个不同的问题,请注意,您获得的报价与问题中的报价不同。
斯蒂芬·基特

2
确认这是另一个问题。通过将以下条目添加到我的~/.ssh/config文件中,我能够解决该问题。 Host 192.168.1.123在它之下Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
typelogic

17

我尝试了此解决方案,但是我的问题是我有许多(旧版)客户端连接到我最近升级的服务器(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

4
希望您能够在某个时候升级您的客户端,由于很好的原因禁用了旧算法,因此不应轻易重新启用(您可能意识到,我认为值得其他读者注意)。
史蒂芬·基特

1
这在服务器端起作用(不同于非常类似的,被接受的,侧重于客户端的答案。)
knb

我试图使用相同的来启用旧密钥。但因为我是一个新手,我真的不知道当我写的ssh -oKexAlgorithms = +的Diffie-Hellman-组1-SHA1 123.123.123.123什么IP的地方
有司

为了增加供将来的人们查找,我将SSH从运行OpenSSH_7.9p1的Mac连接到运行以下Cisco 3750交换机:Cisco IOS软件,C3750软件(C3750-IPSERVICESK9-M),版本12.2(55)SE12,发布软件(fc2)。我将以下内容添加到客户端配置中,并可以使用ssh:KexAlgorithms + diffie-hellman-group1-sha1密码+ aes128-cbc
DYoung
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.