thumb

После обновления SSH до новой версии (7.0), при попытке подсоединиться к моему серверу при помощи SSH, Я получаю следующее сообщение:

Unable to negotiate with 192.168.1.1 port 22: no matching key exchange method found.
Their offer: diffie-hellman-group1-sha1

Чем вызвана эта проблема

В OpenSSH 7.0 алгоритм ключа diffie-hellman-group1-sha1 по умолчанию выключен, потому что он слаб и в теории подвержен Logjam атаке. Смотрите страницу www.openssh.com/legacy.html для получения дополнительной информации.

Если клиент и сервер не могут договориться о взаимном наборе параметров, то соединение не будет установлено. OpenSSH (7.0 и выше) покажет такое сообщение об ошибке:

Unable to negotiate with host: no matching key exchange method found.
Their offer: diffie-hellman-group1-sha1

В этом случае клиенту и серверу не удалось согласовать алгоритм обмена ключами, поскольку сервер предложил только один метод diffie-hellman-group1-sha1.

Как это исправить

Лучшим решением для разрешения этой ситуации будет обновление/настройка сервера для того, чтобы не использовать устаревшие алгоритмы. Если же это невозможно, то можно заставить клиента снова включить алгоритм обмена ключами diffie-hellman-group1-sha1 с помощью -oKexAlgorithms=+diffie-hellman-group1-sha1 опции в командной строке:

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@host

или в файле ~/.ssh/config:

Host somehost.example.org
    KexAlgorithms +diffie-hellman-group1-sha1

Если эта статья помогла вам, пожалуйста, оставьте комментарий :smiley:

Спасибо за прочтение!