我读过这个问题:
答案是有效的,所以我尝试了一些变化:
ssh-keygen -lf ~/.ssh/known_hosts -F 192.168.1.X
ssh-keygen -lvf ~/.ssh/known_hosts -F 192.168.1.X
ssh-keygen -E md5 -lvf ~/.ssh/known_hosts -F 192.168.1.X
ssh-keygen -E sha256 -lvf ~/.ssh/known_hosts -F 192.168.1.X
一切都按预期进行。
观察结果:对于上面的任何命令共享,它显示了所有指纹一起立足于自己的关键类型,例如rsa
,ecdsa
等等......我对此表示同意,但是......这篇文章的原因
问题:
- 如何
ssh-keygen
使用特定的过滤器执行命令key type
?
ssh-keyscan
与选项类似的东西-t
,因此类似:
ssh-keygen -lf ~/.ssh/known_hosts -F 192.168.1.X -? rsa
ssh-keygen -lf ~/.ssh/known_hosts -F 192.168.1.X -? ecdsa
那么可能是什么?
? - 我看到了,ssh-keygen --help
似乎没有这种支持。
答案1
在类似 Korn 的 shell 中,你总是可以这样做:
ssh-keygen -lf <(grep ' ssh-rsa ' ~/.ssh/known_hosts) -F localhost
鱼类也一样:
ssh-keygen -lf (grep ' ssh-rsa ' ~/.ssh/known_hosts|psub) -F localhost
或者其他 shell 假设系统具有/dev/stdin
(目前大多数):
grep ' ssh-rsa ' ~/.ssh/known_hosts | ssh-keygen -lf /dev/stdin -F localhost
假设ssh-rsa
在这些文件行的其他任何地方都找不到known_hosts
(例如在注释或选项中)。