3

Подключитесь к серверу, используя OpenSSH_5.9p1 OpenSSL 1.0.1, и он хранит файл .ssh/known_hosts в следующем формате:

|1|wwwwwwwwwwwwwww=|wwwwwwwwww= ecdsa-sha2-nistp256 AAAAAAAAAA+AAAAA=

Затем скопируйте этот файл known_hosts на другой компьютер, на котором работает OpenSSH_4.5p1 OpenSSL 0.9.8d, и он выдаст сообщение «аутентификация не может быть установлена, вы уверены, что хотите продолжить подключение», как если бы файл known_hosts был неправильным.

Когда этот второй компьютер сохраняет известные_хосты для того же сервера, он записывает его в формате:

[10.2.3.4]:22 ssh-rsa AAAAAAAAAA/BBBBB/CCCCCC//DDDDDD

Есть ли способ конвертировать между двумя форматами?

2 ответа2

5

Ваш первый пример содержит ключ ECDSA (ecdsa-sha2-nistp256), который был представлен в OpenSSH 5.7.

OpenSSH 4.5 поддерживает только ключи RSA и DSA (ssh-rsa и ssh-dss) и игнорирует вашу запись known_hosts.

4

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

Можно преобразовать открытый текст в хешированный формат, но не наоборот. Для этой цели в сети существуют различные сценарии.

Если вас не очень волнует эта проблема, вы всегда можете добавить

HashKnownHosts no

в ~/.ssh/config чтобы отключить хеширование known_hosts . Обратитесь к ssh_config(5) для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .