如何从 .ssh/known_hosts 中提取指纹?但过滤特定的键类型

如何从 .ssh/known_hosts 中提取指纹?但过滤特定的键类型

我读过这个问题:

答案是有效的,所以我尝试了一些变化:

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

一切都按预期进行。

观察结果:对于上面的任何命令共享,它显示了所有指纹一起立足于自己的关键类型,例如rsaecdsa等等......我对此表示同意,但是......这篇文章的原因

问题:

  • 如何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(例如在注释或选项中)。

相关内容