No matching key exchange method found

No matching key exchange method found

четверг, 12 мая 2016 г.

Diffie-hellman-group1-sha1 и старый Cisco IOS

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

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

Так как общее количество устройств примерно 3 сотни, поэтому я пользуюсь менеджером соединений PAC. В нем достаточно удобно можно настроить разные виды соединений разложив их тематически по каталогам. Но PAC — это только удобный менеджер, а соединение он осуществляет посредством системных клиентов, в том числе и через ssh-клиент. Поэтому мне необходимо постоянное решение.
Для этого в

/.ssh создаем файл config
в него добавляем пару строк:

Host *
KexAlgorithms +diffie-hellman-group1-sha1

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

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

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

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

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

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

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

Практическая ситуация. Имеется устаревшее устройство cisco 3800 доступное по протоколу sshv2. При попытке залогинится

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

Это значит, что клиент и сервер не могут договориться об алгоритме обмена. Сервер предлагает лишь diffie-hellman-group1-sha1, а клиент по умолчанию его не использует (начиная с Openssh 7.0)

Читайте также:  Irobot не крутятся щетки

Поэтому в /home/user/.ssh конкретного пользователя создаем/редактируем файл config в который добавляем

Повторяем попытку подключения и получаем следующую ошибку:

Unable to negotiate with x.x.x.x port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

В данном случае сервер предлагает использовать aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc шифрование. Добавляем эту строку в config. Итоговый конфиг выглядит так:

Повторяем попытку подключения. В результате должно появится приглашение ввести пароль

Александр Черных
системный администратор

Ссылка на основную публикацию
Adblock detector