Putty на клиенте – ошибка не удалось согласовать алгоритм обмена ключами

Вопрос или проблема

Моя проблема в том, что у меня есть клиент PuTTY на машине с Windows, который пытается подключиться по ssh к серверу Linux (CentOS). Версия PuTTY очень старая, и обновить ее не представляется возможным.

Я хотел бы разрешить использование diffie-hellman-group1-sha1, но объяснения, которые я нашел здесь => https://unix.stackexchange.com/questions/340844/how-to-enable-diffie-hellman-group1-sha1-key-exchange-on-debian-8-0 и здесь => http://www.openssh.com/legacy.html не подходят для моего случая. Потому что в моем случае клиент старый, а не сервер. И это PuTTY на Windows, а не ssh из Linux.

У вас есть идеи, как я мог бы разрешить sha1 на своем сервере Linux, пожалуйста?

Спасибо,

Для будущих читателей, которые наткнутся на этот вопрос через поисковую систему (как и я):

Это недавно случилось со мной на машине с Windows.

Я использовал PuTTY 0.63, а текущая версия была 0.81.

Я скачал PuTTY 0.81 и распаковал его в другую папку.

Затем я запустил свои скрипты, которые контролируют PuTTY и автоматизируют сбор информации с большого количества коммутаторов, и начал видеть эту ошибку:

“Не удалось согласовать алгоритм обмена ключами”

РЕШЕНИЕ (для моего случая):

В какой-то момент скрипт вызывал PuTTY из старого расположения – то есть использовал более старую версию PuTTY. Как только я изменил эту ссылку на вызов версии PuTTY 0.81, проблема была решена.

ПОЗДНЕЕ СООБЩЕНИЕ:

Чтобы было ясно, я могу переключаться между версиями без проблем – обе версии продолжают работать независимо. Но было что-то странное, когда я подключался к коммутатору с новой версией, а затем пытался снова подключиться к нему со старой версии. Что-то кэшируется где-то… но использование новой версии решило проблему.

Ответ или решение

Чтобы решить проблему с ошибкой "Couldn’t agree a key exchange algorithm" при использовании старой версии PuTTY на Windows для подключения к Linux-серверу (CentOS), необходимо внести изменения в конфигурацию SSH-сервера. Поскольку у вас нет возможности обновить клиент, вы можете разрешить использование алгоритма diffie-hellman-group1-sha1 на сервере.

Вот шаги, которые нужно выполнить:

  1. Подредактируйте конфигурацию SSH-сервера:
    Откройте файл конфигурации SSH-сервера. Обычно он находится по пути /etc/ssh/sshd_config. Вы можете использовать редактор, например, nano или vi:

    sudo nano /etc/ssh/sshd_config
  2. Добавьте или измените строку с параметром KexAlgorithms:
    Найдите строку, которая начинается с KexAlgorithms. Если такой строки нет, добавьте новую. Убедитесь, что вы указали diffie-hellman-group1-sha1 как допустимый алгоритм обмена ключами. Например:

    KexAlgorithms diffie-hellman-group1-sha1
  3. Сохраните изменения и перезапустите SSH-сервер:
    После внесения изменений сохраните файл и закройте редактор. Затем перезапустите SSH-сервер, чтобы изменения вступили в силу:

    sudo systemctl restart sshd
  4. Проверьте безопасность:
    Обратите внимание, что алгоритм diffie-hellman-group1-sha1 считается устаревшим и менее безопасным. Если возможно, рекомендуется рассмотреть обновление клиента PuTTY на более современную версию, которая поддерживает более безопасные алгоритмы. Если у вас есть возможность протестировать альтернативные клиенты (например, MobaXterm или другие SSH-клиенты), это также может быть хорошим вариантом.

  5. Тестирование подключения:
    После разрешения использования устаревшего алгоритма попробуйте снова подключиться к серверу с помощью вашей старой версии PuTTY. Если все прошло успешно, вы должны больше не видеть ошибку "Couldn’t agree a key exchange algorithm".

Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...