SSH キーパーサー
SSH 公開鍵を解析・分析します。OpenSSH 公開鍵からキーの種類、アルゴリズム、キーサイズ、フィンガープリント(SHA-256、MD5)、コメントを抽出します。
入力
出力
Readme
SSH公開鍵とは?
SSH公開鍵は、SSH(Secure Shell)プロトコルを介した安全な認証に使用される暗号鍵ペアの片方です。SSH鍵ペアを生成すると、秘密鍵(自分のマシンで秘密に保管)と公開鍵(アクセスしたいサーバーと共有)が得られます。サーバーはあなたの公開鍵を使用して、パスワードを送信することなくあなたの身元を確認します。
SSH公開鍵はOpenSSH形式のテキスト1行として保存され、3つの部分で構成されています:鍵の種類(ssh-rsaやssh-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バージョンでのデフォルトです。