Ssh

如何從 .ssh/known_hosts 中提取指紋?但過濾特定的密鑰類型

  • October 5, 2022

我讀了這個問題:

答案是有效的,所以我嘗試了一些變化:

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,似乎沒有那個支持。

在類似 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

或其他假設系統具有/dev/stdin(最近)的shell:

grep ' ssh-rsa ' ~/.ssh/known_hosts | ssh-keygen -lf /dev/stdin -F localhost

假設ssh-rsa在這些文件的行的其他任何地方都找不到known_hosts(例如在註釋或選項中)。

引用自:https://unix.stackexchange.com/questions/719892