Как включить обмен ключами diffie-hellman-group1-sha1 в Debian 8.0?

66

Я не могу подключиться к серверу 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?

Я пытался (как здесь предлагается )

  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
    

    но все равно получаю ошибку.

j1088099.mvrht.com.
источник
У меня то же самое происходит со мной в Debian 9.
Rui F Ribeiro
Попробуйте этот diffie-hellman-group-exchange-sha256
Мигель

Ответы:

94

На сайте 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
@ifelsemonkey, это другая проблема, обратите внимание, что предложение, которое вы получаете, не совпадает с предложенным в вопросе.
Стивен Китт
3
Подтвердил, что это была другая проблема. Я смог решить эту проблему, добавив следующую запись в мой ~/.ssh/configфайл. Host 192.168.1.123и под ним Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc.
typelogic
19

Я попробовал это решение, но моя проблема заключалась в том, что у меня было много (старых) клиентов, подключающихся к моему недавно обновленному серверу (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
arod
источник
4
Надеемся, что в какой-то момент вы сможете обновить своих клиентов, устаревшие алгоритмы были отключены по очень веским причинам и не должны быть легко включены повторно (вы, вероятно, понимаете это, я просто подумал, что стоит обратить внимание на других читателей).
Стивен Китт
1
Это работает на стороне сервера (в отличие от очень похожего, принятого ответа, ориентированного на сторону клиента.)
knb
Я пытаюсь использовать то же самое, чтобы включить старые ключи. но так как я новичок, я не знаю, какой IP разместить при написании ssh -oKexAlgorithms = + diffie-hellman-group1-sha1
123.123.123.123
Чтобы добавить, что будущие люди смогут найти, я подключался через SSH с Mac, на котором работает OpenSSH_7.9p1, к коммутатору Cisco 3750: программное обеспечение Cisco IOS, программное обеспечение C3750 (C3750-IPSERVICESK9-M), версия 12.2 (55) SE12, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ (FC2). Я добавил следующее в конфигурацию клиента и смог войти в ssh: KexAlgorithms + diffie-hellman-group1-sha1 Шифры + aes128-cbc
DYoung