ssh接続で使用する鍵の作成方法について

作成

ssh-keygenコマンドで作成します。

ssh-keygen [オプション]
引数無しで実行すると、鍵作成に必要な質問がありますので、答えていくと鍵が作成できますが、 通常は、オプションでメールアドレスや暗号化方式などを指定して作成します。

良く使用するオプションを付けた場合、以下のようになります。

ssh-keygen -t [暗号化方式] -b [鍵長] -m [出力フォーマット] -C [メールアドレス]
注 オプション"-C" は、本当はコメント指定用オプションですが、通常メールアドレス指定に使用されます。

オプション指定

ssh-keygen -t [暗号化方式] -b [鍵長] -m [出力フォーマット] -C [メールアドレス]
注 オプション"-C" は、本当はコメント指定用オプションですが、通常メールアドレス指定に使用されます。
ssh-keygen -b 4096 -t rsa -C user@example.com

暗号化方式は、dsa, ecdsa, ed25519, rsa, rsa1 が指定できます。

オプション-t オプション-b 備考
暗号化方式 鍵長
rsa 鍵長は 1024 bit 以上で、デフォルトは2048 bit rsaを指定すると、SSHプロトコルバージョン1用のRSA鍵が作成
rsa1 鍵長は 1024 bit 以上で、デフォルトは2048 bit rsa1を指定すると、SSHプロトコルバージョン2用のRSA鍵が作成
dsa 1024 dsaを指定すると、SSHプロトコルバージョン2用のDSA鍵が作成
ecdsa 256 or 384 or 521 のどれかを指定
ed25519 鍵長は無視される

オプション無しでssh-keygenを実行すると、以下のような公開鍵が作成され、最後のコメントの箇所にメールアドレスがあります。

 cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCTHI0dHXfbO4WldG+YQqA
...
nwEAAGtbaeBMla4mha1Hz0v2Dt uma@local.example.com

オプション無し

例 umaというユーザーで、ssh-keygenコマンドをオプション無しで実行

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/uma/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/uma/.ssh/id_rsa.
Your public key has been saved in /home/uma/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qblvTFJ0AyJB1Zj3iqXKNWs/RUP7r1J8CxMgsbGoIaQ uma@example.com
The key's randomart image is:
+---[RSA 2048]----+
|  ..+oo++o       |
| o   .oo=+=      |
|E . . .oo= +     |
|   . o  o.= .    |
|    .  =So + .   |
|      *oo . * .  |
|   . oo* . . = . |
|    o o.+ .   o  |
|     ..+o. ...   |
+----[SHA256]-----+
パスフレーズ以外をデフォルトにすると、秘密鍵と公開鍵は、以下の場所に作成されます。 またデフォルトでは、暗号化方式はRSA、鍵長は2048bitになります。
秘密鍵: [ホームディレクトリ]/.ssh/id_rsa
公開鍵: [ホームディレクトリ]/.ssh/id_rsa.pub

パスフレーズは5文字以上必要で、5文字未満だと以下のようなエラーになり、鍵は作成されません。

[uma@local ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/uma/.ssh/id_rsa): 
Created directory '/home/uma/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Saving key "/home/uma/.ssh/id_rsa" failed: passphrase is too short (minimum five characters)