Вопрос или проблема
Моя проблема в том, что у меня есть клиент 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
на сервере.
Вот шаги, которые нужно выполнить:
-
Подредактируйте конфигурацию SSH-сервера:
Откройте файл конфигурации SSH-сервера. Обычно он находится по пути/etc/ssh/sshd_config
. Вы можете использовать редактор, например,nano
илиvi
:sudo nano /etc/ssh/sshd_config
-
Добавьте или измените строку с параметром KexAlgorithms:
Найдите строку, которая начинается сKexAlgorithms
. Если такой строки нет, добавьте новую. Убедитесь, что вы указалиdiffie-hellman-group1-sha1
как допустимый алгоритм обмена ключами. Например:KexAlgorithms diffie-hellman-group1-sha1
-
Сохраните изменения и перезапустите SSH-сервер:
После внесения изменений сохраните файл и закройте редактор. Затем перезапустите SSH-сервер, чтобы изменения вступили в силу:sudo systemctl restart sshd
-
Проверьте безопасность:
Обратите внимание, что алгоритмdiffie-hellman-group1-sha1
считается устаревшим и менее безопасным. Если возможно, рекомендуется рассмотреть обновление клиента PuTTY на более современную версию, которая поддерживает более безопасные алгоритмы. Если у вас есть возможность протестировать альтернативные клиенты (например, MobaXterm или другие SSH-клиенты), это также может быть хорошим вариантом. -
Тестирование подключения:
После разрешения использования устаревшего алгоритма попробуйте снова подключиться к серверу с помощью вашей старой версии PuTTY. Если все прошло успешно, вы должны больше не видеть ошибку "Couldn’t agree a key exchange algorithm".
Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.