Копировать известные_хосты между компьютерами?
Подключитесь к серверу, используя 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 ответа
Ваш первый пример содержит ключ ECDSA (ecdsa-sha2-nistp256
), которые были введены в OpenSSH 5.7.
OpenSSH 4.5 поддерживает только ключи RSA и DSA (ssh-rsa
а также ssh-dss
) и игнорирует вашу запись known_hosts.
Первый формат ключей, который у вас есть, - это хешированный формат, разработанный для того, чтобы кто-то, взломавший вашу учетную запись, не знал, к каким другим хостам он / она может подключиться, используя ваш пароль и / или ключи SSH.
Можно преобразовать открытый текст в хешированный формат, но не наоборот. Для этой цели в сети существуют различные сценарии.
Если вас не очень волнует эта проблема, вы всегда можете добавить
HashKnownHosts no
в ~/.ssh/config
отключить known_hosts
хэширования. Обратитесь к ssh_config(5) за дополнительной информацией.