Как исправить: В OpenSSH 7.0 не найден соответствующий метод обмена ключами
После обновления 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
Если эта статья помогла вам, пожалуйста, оставьте комментарий
Спасибо за прочтение!
Arthur is a designer and full stack software engineer. He is the founder of Space X-Chimp and the blog My Cyber Universe. His personal website can be found at arthurgareginyan.com.