Linux / コマンド / ssh-keygen - SSH キー ペアの生成とフィンガープリントの確認
ssh-keygenは、SSH認証に使用する秘密鍵と公開鍵のペアを作成し、フィンガープリントを確認します。秘密鍵は自分のコンピュータに安全に保管し、公開鍵のみをサーバーに登録します。
SSH(Secure Shell)の公開鍵認証では、クライアントが秘密鍵で署名し、サーバーが登録済みの公開鍵で検証します。秘密鍵がid_ed25519なら、公開鍵は通常id_ed25519.pubという別ファイルです。フィンガープリントは鍵をハッシュ値として表した識別情報で、鍵そのものではありません。パスフレーズは保存した秘密鍵を保護します。鍵の登録とサーバーのホストキー確認は別の操作です。
基本的な文法
ssh-keygen [オプション]
インストールされている実装とオプションは、配布版によって異なる場合があります。man ssh-keygenで現在のシステムの説明を確認してください。
使用例
Ed25519キーペアの作成
~/.sshがなければmkdir -p ~/.sshで作成し、Linuxではchmod 700 ~/.sshで自分だけがアクセスできるようにします。指定先の鍵が存在しないことを確認して実行し、表示される入力欄でパスフレーズを設定します。-Cのメール形式の文字列は識別用コメントで、ログイン名や認証先の指定ではありません。
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_work -C 'user@example.com'
公開鍵フィンガープリントの確認
サーバーに登録するキーが意図したキーかどうかを比較します。
ssh-keygen -lf ~/.ssh/id_ed25519_work.pub
秘密鍵から公開鍵を再生成
公開鍵ファイルを紛失したとき、秘密鍵を外部に公開せずに公開鍵を出力します。
ssh-keygen -y -f ~/.ssh/id_ed25519_work
作成したキーのフィンガープリントを確認する
キーを作成した後は公開鍵ファイルのフィンガープリントを照会して、サーバーに登録しようとしているキーが正しいか確認できます。実際のフィンガープリントはキーごとに固有です。
ssh-keygen -lf ~/.ssh/id_ed25519_work.pub
出力形式の例(フィンガープリントは省略した説明用の値です):
256 SHA256:... user@example.com (ED25519)
256は鍵のビット数、括弧内は種類です。生成すると例の秘密鍵と.pub付きの公開鍵ができます。公開鍵の登録はssh-copy-idによる公開鍵の登録を参照してください。秘密鍵は手元で保護し、sshの公開鍵認証に使用します。既存鍵を上書きすると、その鍵を使っていた接続を失う可能性があります。
主なオプションと形式
| オプション・形式 | 説明 |
|---|---|
-t タイプ |
ed25519 など作成するキーの種類を指定します。 |
-f ファイル |
キーを保存または読み込むファイルを指定します。 |
-C 注釈 |
公開鍵に識別用のコメントを付けます。 |
-l |
鍵ファイルのフィンガープリントを表示します。 |
-y |
秘密鍵から公開鍵を出力します。 |
-p |
既存の秘密鍵のパスフレーズを変更します。 |
使用する際の注意点
既存の鍵のパスを再利用すると、以前の公開鍵で接続していたサーバーにログインできない可能性があります。生成前に該当ファイルが存在するか確認し、上書き警告をお読みください。秘密鍵はメール・メッセンジャー・ウェブページにアップロードせず、権限とバックアップを管理してください。パスフレーズを失うと通常鍵を復元できないため、新しい鍵ペアを発行しサーバーの公開鍵を交換する必要があります。
よくある質問
サーバーにどのファイルをコピーすればよいですか?
拡張子が .pub の公開鍵のみ登録します。拡張子のない秘密鍵はローカルに保管してください。
公式ドキュメント
オプションの正確な動作や実装ごとの違いは、ssh-keygen 関連公式ドキュメントで確認できます。




