SSH公開鍵とは?

SSH公開鍵は、SSH(Secure Shell)プロトコルを介した安全な認証に使用される暗号鍵ペアの片方です。SSH鍵ペアを生成すると、秘密鍵(自分のマシンで秘密に保管)と公開鍵(アクセスしたいサーバーと共有)が得られます。サーバーはあなたの公開鍵を使用して、パスワードを送信することなくあなたの身元を確認します。

SSH公開鍵はOpenSSH形式のテキスト1行として保存され、3つの部分で構成されています:鍵の種類(ssh-rsassh-ed25519など)、Base64エンコードされた鍵データ、およびオプションのコメント(通常はuser@hostname)。Base64データの内部には、アルゴリズムのパラメーターと実際の暗号素材を含む構造化されたバイナリ情報が埋め込まれています。

フィンガープリントは、鍵データの短い人間が読めるハッシュです。完全なBase64文字列を読まずに鍵を確認・比較するのに便利です。最も一般的な2つのフィンガープリント形式は、SHA-256(現代のデフォルト)とMD5(コロン区切りの16進数ペアを使用するレガシー形式)です。

ツールの説明

このツールはOpenSSH形式のSSH公開鍵を解析し、すべての重要なメタデータを抽出します。公開鍵を貼り付けると、鍵の種類、アルゴリズム、ビット単位の鍵サイズ、コメント、SHA-256とMD5の両方のフィンガープリントを即座に確認できます — ssh-keygen -lで得られる出力と一致します。

使用例

入力:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@laptop

出力:

フィールド
鍵の種類 ssh-ed25519
アルゴリズム Ed25519
鍵のサイズ 256ビット
コメント user@laptop
フィンガープリント SHA-256 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
フィンガープリント MD5 MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

機能

  • RSA、Ed25519、ECDSA(P-256、P-384、P-521)、DSA、およびSecurity Key(FIDO)の鍵タイプをサポート
  • 標準のOpenSSH形式でSHA-256とMD5のフィンガープリントを計算
  • バイナリ鍵データから直接ビット単位の鍵サイズを抽出
  • Base64の整合性と埋め込まれた種類の一貫性を含む鍵の構造を検証
  • 公開鍵の行からオプションのコメントフィールドを解析

動作の仕組み

このツールは入力を3つの部分に分割します:鍵の種類、Base64データ、コメント。次にBase64データをバイナリにデコードし、SSHの長さプレフィックス形式を使用して内部構造を読み取ります。各フィールドは4バイトのビッグエンディアン長の後にフィールドデータが続きます。鍵のサイズはアルゴリズム固有のパラメーターから決定されます — RSAの場合は係数nのビット長、DSAの場合は素数p、楕円曲線鍵の場合は曲線名から導出されます。フィンガープリントは、生のバイナリ鍵データをSHA-256とMD5でハッシュ化することで計算されます。

サポートされている鍵タイプ

種類の識別子 アルゴリズム
ssh-rsa RSA
ssh-ed25519 Ed25519
ecdsa-sha2-nistp256 ECDSA (P-256)
ecdsa-sha2-nistp384 ECDSA (P-384)
ecdsa-sha2-nistp521 ECDSA (P-521)
ssh-dss DSA
sk-ssh-ed25519@openssh.com Ed25519-SK (Security Key)
sk-ecdsa-sha2-nistp256@openssh.com ECDSA-SK (Security Key)

ユースケース

  • 鍵のフィンガープリントの確認 — 公開鍵をauthorized_keysやGitホスティングサービスに追加する前に、期待されるフィンガープリントと一致するかどうかを確認する
  • サーバーアクセスの監査authorized_keysファイル内の鍵のアルゴリズムと鍵サイズを素早く特定し、脆弱または古い鍵を見つける
  • SSHの問題のデバッグ — 鍵が正しい形式であるか、期待されるアルゴリズムを使用しているか、有効な構造を持っているかを確認する

よくある質問

SSH公開鍵はどこで見つけられますか? ほとんどのシステムでは、~/.ssh/id_ed25519.pub~/.ssh/id_rsa.pub、またはアルゴリズムに応じた類似のパスに保存されています。また、ssh-add -Lを実行してSSHエージェントに読み込まれている鍵を一覧表示することもできます。

公開鍵を共有しても安全ですか? はい。公開鍵は共有されることを前提に設計されています。公開鍵から秘密鍵を導出したり、あなたの代わりに認証に使用したりすることはできません。

SHA-256とMD5のフィンガープリントが異なって見えるのはなぜですか? SHA-256フィンガープリントはBase64エンコードされ、SHA256:というプレフィックスが付きます。一方、MD5フィンガープリントはMD5:というプレフィックスの後にコロン区切りの16進数ペアを使用します。SHA-256は現代のOpenSSHバージョンでのデフォルトです。