最終更新:2025-02-22
ssh-keygen
コマンドは、SSHプロトコルでの公開鍵認証に用いる鍵ペア(秘密鍵と公開鍵)を生成・管理するためのツールである。
これにより、セキュアなリモートログインや通信が可能となる。
鍵の生成のみならず、既存の鍵の変換・署名、フィンガープリントの表示など多様な機能を備えている。
主なオプションの詳細
以下、ssh-keygen
が提供する代表的なオプションについて、具体的な説明を行う。
-t type
鍵の種類を指定するオプションである。- 指定例:
rsa
:RSAアルゴリズム。デフォルトで広く用いられる。dsa
:DSAアルゴリズム。(ただし、セキュリティ上の理由から非推奨)ecdsa
:楕円曲線DSA。ed25519
:高セキュリティ、高速なED25519。
- 例:
ssh-keygen -t ed25519
- 指定例:
-b bits
鍵のビット長を指定するオプションである。主にRSA鍵で用いられ、数字で長さを指定する。- 例:
ssh-keygen -t rsa -b 4096
は、4096ビットのRSA鍵を生成する。
- 例:
-C comment
鍵にコメントを付加するオプションである。通常、ユーザー名やメールアドレス等を記述する。- 例:
ssh-keygen -t rsa -b 4096 -C "user@example.com"
- 例:
-f filename
鍵ファイルの出力先およびファイル名を指定する。出力先フォルダが存在する必要がある。- 例:
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_custom
- 例:
-N new_passphrase
鍵の秘密鍵に付与するパスフレーズを指定する。空文字を指定することでパスフレーズなしで生成することも可能である。- 例:
ssh-keygen -t ed25519 -N "my_secure_passphrase"
- 例:
-q
静かな(quiet)モードで動作させるオプションである。生成時の詳細なメッセージを抑制する。-E fingerprint_hash
鍵のフィンガープリントを表示する際に使用するハッシュアルゴリズムを指定する。- 指定例:
md5
:MD5ハッシュ(従来の表示形式)。sha256
:SHA256ハッシュ(現代的な推奨形式)。
- 例:
ssh-keygen -l -E sha256 -f ~/.ssh/id_rsa.pub
- 指定例:
-y
既存の秘密鍵ファイルから公開鍵を抽出して表示する。すでに生成された秘密鍵から公開鍵の内容を取得する際に有用である。- 例:
ssh-keygen -y -f ~/.ssh/id_rsa
- 例:
-P old_passphrase
秘密鍵のパスフレーズを再指定するためのオプションである。主にパスフレーズ変更作業時に用いられる。
ハンズオン
以下に、具体的な使用例と操作手順を示す。
1. デフォルトの鍵ペアの生成
最も基本的な使用方法は、単にssh-keygen
と入力することである。
この場合、対話形式で以下の手順が実施される。
- 鍵の保存先(デフォルトは
~/.ssh/id_rsa
)の確認。 - パスフレーズの入力・確認を求められる(セキュリティ向上のため、パスフレーズの設定が推奨される)。
ssh-keygen
2. ED25519鍵の生成
セキュリティとパフォーマンスを兼ね備えたED25519アルゴリズムを用いて鍵ペアを生成する例である。
ssh-keygen -t ed25519 -C "user@example.com"
この例では、-t ed25519
により鍵の種類をED25519に指定し、-C
で鍵にコメントを付加している。
3. 4096ビットのRSA鍵の生成とカスタムファイル名の指定
RSA鍵をより強固な4096ビットで生成し、生成されるファイル名をカスタマイズする例である。
ssh-keygen -t rsa -b 4096 -C "user@example.com" -f ~/.ssh/id_rsa_custom
この例では、-b 4096
によりビット長を指定し、-f
で出力ファイル名を自前のものに変更している。
4. パスフレーズ付きの鍵生成
生成される秘密鍵に、特定のパスフレーズを設定する場合である。
なお、実際の運用ではパスフレーズの入力を対話で行うのが一般的だが、ここでは自動化の例として示す。
ssh-keygen -t ed25519 -C "user@example.com" -N "my_secure_passphrase"
この場合、-N
オプションによって新たなパスフレーズが明示的に指定される。
5. 既存の秘密鍵から公開鍵を抽出する
既に存在する秘密鍵から、公開鍵を再生成して表示する場合は以下のように行う。
ssh-keygen -y -f ~/.ssh/id_rsa_custom
この操作により、秘密鍵から対応する公開鍵が標準出力に表示される。
6. 鍵のフィンガープリントの確認
生成された公開鍵ファイルのフィンガープリントをSHA256形式で確認する例である。
ssh-keygen -l -E sha256 -f ~/.ssh/id_rsa_custom.pub
この例では、-l
によってフィンガープリントを表示し、-E sha256
によりハッシュアルゴリズムとしてSHA256を指定している。