.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
ありがとう!-lknown_hostsファイルで使用できるとは知りませんでした。ここではより良い私の質問に対処したバージョンがあります:ssh-keygen -l -f ~/.ssh/known_hosts -F example.com
だけでなく、あなたの改造を扱う

4
ちなみに、-Fが私にとって重要な理由は、インストールしたSSHのバージョンにかかわらず、known_hostsファイル内のすべてのホスト名がハッシュ化されているためです。必要な行だけをgrepすることはできません。(誰かが今まで私の秘密鍵を取得する場合、これは便利なセキュリティ対策です-彼らはそれがにそれらを得ることができるもののマシンを把握しにくいです。)
だけでなく、あなたの改造を扱う

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.