Исправлено: не найдено подходящего метода обмена ключами



Попробуйте наш инструмент устранения неполадок

Когда вы пытаетесь использовать ssh для связи с удаленным сервером, вы можете получить сообщение об ошибке, которое не считывает соответствующий метод обмена ключами, прежде чем дать вам предложение относительно того, какой алгоритм шифрования вы хотите использовать. Вы не сможете подключиться к удаленному серверу при возникновении ошибки. Этот процесс может быть очень неприятным, но ошибка настолько распространена, что вы часто можете встретить представителей Unix, говорящих о том, как они ее переживают, и которые дают тот же совет, чтобы выбраться из леса.



Следующие методы исправления ошибки были протестированы на всем, с чем работает ssh, но вы, скорее всего, найдете эту проблему в системах Unix и Linux. Вы должны иметь возможность использовать тот же процесс, чтобы исправить это, если вы используете ssh в Windows или что-то экзотическое, но вы можете обнаружить, что параметры переключения немного отличаются.



Метод 1: повторное обращение к серверу и восстановление ключей

Прежде чем делать что-либо еще, убедитесь, что вы можете воспроизвести ошибку. Иногда это сообщение об ошибке возникает только из-за того, что какая-то удаленная служба в данный момент не запущена, что, возможно, было исправлено за это время. Пока мы запускали ssh на виртуальной машине, которая позволяла подключаться к фиктивному адресу сервера, который был установлен как утвержденный в документации example.org, но вместо этого вы захотите подставить реальный сетевой адрес.



Если вы все еще получаете его, попробуйте восстановить ключи с помощью ssh-keygen -A из командной строки. Это обновит кеш, который приложение ssh использует для подключения к удаленному серверу. Запретив это, вы можете попробовать перезапустить ssh, запустив перезапуск службы ssh и уделив ему несколько минут.

Если у вас по-прежнему возникают проблемы, это означает, что сервер и клиент так и не смогли договориться о том, какой протокол использовать. OpenSSH реализует огромное количество различных протоколов, но отключает некоторые из них, потому что теперь известно, что они скомпрометированы и поэтому небезопасны. Вам нужно обновить все пакеты ssh на стороне сервера, поэтому убедитесь, что системный администратор знает, что происходит. Если это ваш собственный сервер, обновите его.



Если это невозможно, и вы понимаете опасность использования скомпрометированного алгоритма, то есть способ на стороне клиента обойти это сообщение об ошибке.

Метод 2: включение устаревших параметров в OpenSSH

Посмотрите, что написано в сообщении об ошибке после слов Их предложение: чтобы узнать, какой алгоритм предпочитает удаленный сервер. Хотя в большинстве систем следует использовать openssh7, который уже отключил старую устаревшую технологию diffie-hellman-group1-sha1, вам будет предложено использовать sha1, если они все еще застряли на openssh6 или чем-то подобном.

Бежать ssh -oKexAlgorithms = + diffie-hellman-group1-sha1 testhost@example.org независимо от фактического сетевого хоста или IP-адреса удаленного сервера, чтобы исправить эту проблему на стороне клиента. Если это решит проблему, значит, для подключения требовался более старый протокол на основе sha1. Это более старое решение на основе sha1 было отключено по уважительной причине, но вы можете обойти его навсегда, используя редакторы nano или vim, чтобы открыть файл ~ / .ssh / config и добавить строки:

Хост example.org

KexAlgorithms + diffie-hellman-group1-sha1

Имейте в виду, что вы должны убедиться, что там стоит знак плюса, поскольку это означает, что ssh добавит, а не заменит более безопасные значения по умолчанию. Когда сервер обновляет пакеты, в большинстве случаев вы будете использовать более безопасные протоколы.

Если вы получили ошибку до того, как упомянул протокол ssh-dss вместо версии sha1, вы можете вместо этого попробовать эту команду, за которой следует имя вашего хоста: ssh -oHostKeyAlgorithms = + ssh-dss , который, если он работает, вам нужно будет снова отредактировать файл ~ / .ssh / config. После строки Host добавьте вкладку и следующее:

HostKeyAlgorithms + ssh-dss

Помните, что, как и система sha1, ключ ssh-dss устарел из-за чрезвычайно рациональных проблем безопасности, связанных с ним. Использование этого может привести к уязвимости вашего соединения, поэтому его следует рассматривать только как временное исправление, даже если это. Обязательно обновите сервер как можно скорее.

3 минуты на чтение