Когда клиент SSH подключается к серверу, каждая сторона предлагает другому набор параметров соединения.
Для успешного соединения необходимо, чтобы для каждого параметра существовал хотя бы один взаимно совместимый набор.
Если клиент и сервер не могут договориться о взаимном наборе, в данном случае об алгоритме обмена ключами, соединение будет неудачным, и OpenSSH вернет сообщение об ошибке, подобное этому выводу:
Unable to negotiate with 10.10.10.7 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
Сервер предложил diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
.
OpenSSH поддерживает эти методы, но не включает их по умолчанию, поскольку они слабы и находятся в теоретическом диапазоне так называемой атаки Logjam.
Решение
Если обновление невозможно выполнить немедленно, вы можете повторно включить алгоритмы либо в командной строке:
или в файле ~/.ssh/config
:
Host 10.10.10.7
KexAlgorithms +diffie-hellman-group1-sha1
см. также:
- 🔒 ASSH: усовершенствованный способ взаимодействия с SSH
- 🔐 Как сгенерировать ключи SSH в формате PEM
- 🔐 Как проверить конфигурацию клиента SSH
- 🔐 Как исправить ошибку “ssh_exchange_identification: read: Connection reset by peer” Ошибка
- 🔐 Как добавить открытый ключ в файл known_hosts