Linuxで秘密鍵・公開鍵を生成するssh-keygenコマンドについて説明します。
ssh-keygenの使い方
ssh-keygenコマンドの書式は以下の通りです。
1 |
ssh-keygen [オプション] -t 鍵タイプ [-N 新しいパスフレーズ] [-C コメント] [-f 鍵ファイル] |
オプション
-b | 鍵の長さを指定する(最低値は768bit、初期値は2048bit) |
-C コメント | 秘密鍵のコメントを新規作成する |
-c | 秘密鍵ファイルおよび公開鍵ファイルのコメントを変更する |
-f 鍵ファイル | 鍵ファイルを指定する |
-i | 鍵ファイルの情報を表示する |
-l | 公開鍵の指紋を表示する |
-p | 秘密鍵のパスフレーズを変更する |
-t 鍵タイプ | 鍵タイプを指定する (rsa1, dsa, ecdsa, rsa, etc...) |
暗号鍵の生成
たとえば、RSA暗号の鍵を生成する場合は、オプション「-t rsa」を指定してssh-keygenコマンドを実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Created directory '/home/user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: 82:cb:b7:0b:4f:76:2f:b4:5e:28:9d:50:a2:c9:44:97 user@localhost The key's randomart image is: +--[ RSA 2048]----+ | .o. | | . o o | | o . o o . | | + o + o | | o . S. o + | | . o . . . | | o . . . . | | o o . E | | ..o . ... | +-----------------+ |
コマンドを実行すると、まず、生成する秘密鍵・公開鍵のファイル名の入力が求められます。デフォルトでは秘密鍵ファイル「id_rsa」と公開鍵ファイル「id_rsa.pub」が「~/.ssh」ディレクトリ以下に作成されます。「-t」オプションで指定した鍵タイプによりファイル名の初期値は異なります。
次にパスフレーズの入力が求められます。確認のためパスフレーズは2度入力が求められます。これで秘密鍵と公開鍵の2つのファイルが生成されます。
パスフレーズの変更
パスフレーズを変更する場合の書式は以下の通りです。
1 |
ssh-keygen -p [-P 古いパスフレーズ ] [-N 新しいパスフレーズ ] [-f 秘密鍵のファイル ] |
このコマンドでは既存の秘密鍵ファイルのパスフレーズを変更します。
鍵に保存されたパスフレーズを変更するには、以下のようにオプション「-p」を指定します。コマンド実行時にパスフレーズとファイル名を入力することも可能ですが、例ではオプション「-P, -N, -f」は省略し対話的に入力しています。
1 2 3 4 5 6 7 |
$ ssh-keygen -p Enter file in which the key is (/home/user/.ssh/id_rsa): Enter old passphrase: Key has comment '/home/user/.ssh/id_rsa' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase. |
まず秘密鍵ファイル名を入力を求められます。次に古いパスフレーズを入力し、そして新しいパスフレーズを入力します。なお、新しいパスフレーズは2度入力する必要があります。