如何从.ssh / known_hosts提取指纹?


72

我的笔记本电脑中有一个填充良好的~/.ssh/known_hosts文件。从桌面连接到远程主机时,我想利用这一点,因为跟踪指纹可能是一件很麻烦的事。但是,我似乎找不到寻找ssh-keygenssh-keyscan告诉我已知主机的本地指纹的方法。有任何想法吗?

Answers:


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
好好对待您的mods 2013年

4
顺便说一句,-F对我来说很重要的原因是,无论我安装的SSH版本是什么,都已经对known_hosts文件中的所有主机名进行了哈希处理。我不能只是grep我想要的行。(如果有人获得了我的私钥,这将是一种有用的安全措施-他们不太可能弄清楚它可以将哪些机器插入其中。)
好好对待您的mods 2013年

13
值得注意的是,openssh的最新版本默认为SHA256哈希。要获取较旧的md5哈希,请使用-E md5选项。
JumperPunk 2015年

3
并且,如果使用了非标准端口:[example.com]:1234
好好对待您的mod

3
要获取SSH服务器的主机密钥指纹(将示例IP替换为服务器的IP或主机名):ssh-keyscan 123.123.12.34 | ssh-keygen -l -f -
TrinitronX
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.