Как извлечь отпечатки пальцев из .ssh / known_hosts?

72

У моего ноутбука хорошо заполненный ~/.ssh/known_hostsфайл. Я хотел бы использовать это при подключении к удаленным хостам с моего рабочего стола, так как отслеживание отпечатков пальцев может быть настоящей работой. Тем не менее, я не могу найти способ спросить ssh-keygenили ssh-keyscanсказать мне местный отпечаток для известных хостов. Есть идеи?

хорошо относиться к своим модам
источник

Ответы:

95

Попробуйте эту команду:

% ssh-keygen -l -f ~/.ssh/known_hosts

2048 c2:e7:c0:9f:cd:c8:54:88:ac:b3:6b:a6:51:73:2b:e3 mach1,192.168.1.3 (RSA)
2048 a2:5e:8c:4e:2e:be:be:eb:23:12:5e:fe:6c:4b:23:dd mach2,192.168.1.1 (RSA)
1024 ae:5f:bc:e3:33:c3:dd:45:1e:18:1a:46:d1:d6:d2:39 mach3,192.168.1.6 (RSA)
...
...

просто хочу один хост:

% ssh-keygen -l -f ~/.ssh/known_hosts -F mach1
2048 c2:e7:c0:9f:cd:c8:54:88:ac:b3:6b:a6:51:73:2b:e3 mach1 (RSA)

Ресурсы

http://www.gossamer-threads.com/lists/openssh/users/49503

ОДС
источник
9
Спасибо! Я не знал, что вы можете использовать -lс файлом known_hosts. Вот версия, которая еще лучше отвечает на мой вопрос:ssh-keygen -l -f ~/.ssh/known_hosts -F example.com
хорошо относитесь к своим модам
4
Кстати, причина -F для меня важна в том, что в любой установленной мной версии SSH хэшируются все имена хостов в файле known_hosts. Я не могу просто найти нужную мне строку. (Это полезная мера безопасности, если кто-то когда-нибудь получит мой закрытый ключ - они с меньшей вероятностью выяснят, на какие машины он может их получить.)
хорошо относитесь к вашим модам.
13
Стоит отметить, что в последних версиях openssh по умолчанию используется хеш SHA256. Чтобы получить более старый хэш md5, используйте -E md5опцию.
JumperPunk
3
А если используется нестандартный порт:[example.com]:1234
хорошо относитесь к своим модам
3
Чтобы получить отпечатки ключей хоста для сервера SSH (замените пример IP на IP или имя хоста вашего сервера):ssh-keyscan 123.123.12.34 | ssh-keygen -l -f -
TrinitronX