ssh-keygen -l で公開鍵のフィンガープリントを確認する

  • SSH
  • Security

この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。

何を確認したかったか

authorized_keys に登録されている鍵が、どういう鍵で、フィンガープリントがどうなっているかを一覧したかった。

コマンド

ssh-keygen -l -f .ssh/authorized_keys

-l でフィンガープリント表示、-f で対象ファイルを指定する。

出力

2048 SHA256:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA comment1 (RSA)
2048 SHA256:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB comment2 (RSA)
2048 SHA256:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC comment3 (RSA)
2048 SHA256:DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD comment4 (RSA)

フォーマントは <鍵長> <ハッシュ種別>:<フィンガープリント> <コメント> (<鍵種別>) の順になっている。

分かったこと

  • -f には単一の公開鍵ファイル(id_rsa.pub など)だけでなく、authorized_keys や known_hosts のように複数行ある鍵リストファイルも渡せる。渡すと1行ごとに1鍵分のフィンガープリントが出力される。
  • 秘密鍵ファイル(id_rsa など)を指定しても、対応する公開鍵側のフィンガープリントが表示される。
  • フィンガープリントのハッシュ方式はOpenSSH 6.8以降だとSHA256がデフォルトらしい。それより古いバージョンだとMD5表記になるらしいが、実機では未確認。
  • コメント部分は公開鍵末尾の自由記述欄で、user@host 形式が多いが空でも動作する。

用途

複数人で使っている authorized_keys の中身を棚卸しするときや、意図しない鍵が紛れ込んでいないかをチェックするときに使える。