ssh-keygen は公開鍵、秘密鍵のペアを生成するコマンドです。
生成時のオプションについてまとめました。
暗号鍵( 秘密鍵 と 公開鍵 )を生成する。
ssh-keygen コマンドのオプションについて。
Contents
秘密鍵と、公開鍵を作成するコマンド
実行すると、秘密鍵と公開鍵のペアが生成されます。
「.pub」がついている方が公開鍵です。
フォーマット:
ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] [-N new_passphrase] [-C comment] [-f output_keyfile]
各オプションの説明。
-q | 出力時にログを出さない。 |
-b | 鍵のビット数を指定。 |
-t | 暗号化アルゴリズムを指定。 dsa、ecdsa、ed25519、rsa |
-N | パスワードを指定する。 |
-C | コメントを指定する。 |
-f | ファイルを指定する。 |
実行例
デフォルト(rsa タイプ、2048 ビット)
オプションなしでコマンドをそのまま実行。
暗号化アルゴリズムは「rsa -2048 ビット」になります。
ssh-keygen
uniuni@beccou-server:~ $ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/uniuni/.ssh/id_rsa): -----1
Created directory '/home/uniuni/.ssh'.
Enter passphrase (empty for no passphrase): -----2
Enter same passphrase again: -----3
Your identification has been saved in /home/uniuni/.ssh/id_rsa.
Your public key has been saved in /home/uniuni/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:QDz/HRbq0WtSvK9hpeAIhhonktpkzq3f7lFn1Eprkgg uniuni@beccou-server
The key's randomart image is:
+---[RSA 2048]----+
| .. |
| .o .. |
| E .o o+.. |
| . o o.+oo* |
|o = o + SoB= +. |
|.B * . o B+.=o |
|. = . . . .o+. |
| . . . . .. |
| ...o+ .. |
+----[SHA256]-----+
uniuni@beccou-server:~ $
-N、-f オプションを指定せずに実行すると、3回入力を促されます。
何も入力せずに【Enter】キーを押すと、括弧内の値(デフォルト)が割り当てられます。
- Enter file in which to save the key (/home/uniuni/.ssh/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- 生成するファイルの名前
- パスワード
- パスワード確認
-N、-f
-N(パスワード指定)と、-f(保存ファイル指定)を指定して実行すると、入力は促されません。
ssh-keygen [-N pass] [-f /home/uniuni/.ssh/id_rsa]
・ [-N pass]
パスワード = 「pass」 に設定。
ここで設定したパスワードは、秘密鍵でSSH 接続する時に入力するパスワードになります。
これで何らかの方法で秘密鍵を手に入れてもパスワードが必要になってくるという・・・無限セキュアァ!!
・[-f /home/uniuni/.ssh/id_rsa]
保存場所 = /home/uniuni/.ssh/id_rsa
→ .ssh フォルダ内に id_rsa(秘密鍵)と id_rsa.pub(公開鍵)ファイルを生成。
uniuni@beccou-server:~ $ ssh-keygen -N pass -f /home/uniuni/.ssh/id_rsa
Generating public/private rsa key pair.
Created directory '/home/uniuni/.ssh'.
Your identification has been saved in /home/uniuni/.ssh/id_rsa.
Your public key has been saved in /home/uniuni/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CQWdmGFCpIUDAoTQApl25SLzoW2zivGFem6ttkb2tig uniuni@beccou-server
The key's randomart image is:
+---[RSA 2048]----+
|%* +*.+*.. |
|*.++.oo.o |
|.+o+ .. |
| * o . . |
| . = S |
| +.o |
|.o.+. |
|E+*o+ |
|oO*+.. |
+----[SHA256]-----+
uniuni@beccou-server:~ $
-q
「-q」をつけて実行。無応答で実行されます。
ssh-keygen [-q] -N pass -f /home/uniuni/.ssh/id_rsa
uniuni@beccou-server:~ $ ssh-keygen -q -N pass -f /home/uniuni/.ssh/id_rsa
uniuni@beccou-server:~ $
-t
暗号化アルゴリズムを指定する。
ssh-keygen -q [-t ed25519] -N pass -f /home/uniuni/.ssh/id_test
uniuni@beccou-server:~ $ ssh-keygen -q -t ed25519 -N pass -f /home/uniuni/.ssh/id_test
uniuni@beccou-server:~ $
-b
暗号化アルゴリズムとビット数を指定する。(-q、-N、-f は省略可。)
rsa で指定できる最大ビット数は「16384」です。
ssh-keygen -q -t rsa [-b 4096] -N pass -f /home/uniuni/.ssh/id_rsa
uniuni@beccou-server:~ $ ssh-keygen -q -t rsa -b 4096 -N pass -f /home/uniuni/.ssh/id_rsa
uniuni@beccou-server:~ $
-C
-C コメントを追加。
「-C “$(whoami)@$(hostname)-$(date -I)”」ユーザー、ホスト名、日付などを追加しています。
ssh-keygen -q –t ed25519 -N pass [-C “$(whoami)@$(hostname)-$(date -I)”] -f /home/uniuni/.ssh/id_test
uniuni@beccou-server:~ $ ssh-keygen -q -t ed25519 -N pass -C "$(whoami)@$(hostname)-$(date -I)" -f /home/uniuni/.ssh/id_test
uniuni@beccou-server:~ $
#生成された公開鍵ファイル
uniuni@beccou-server:~ $ cat .ssh/id_test.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILSeWqIiCvcskjcnhRovVctRpuo3XB7NO5Y/SbssmpEc uniuni@beccou-server-2021-09-02
uniuni@beccou-server:~ $
ピンバック: Raspberry Pi OS でSSH 接続を有効にする。 - .zapping
ピンバック: WindowsServer 2016 にsshd をインストールしてSSH 接続する。 - .zapping
ピンバック: Windows で SSH 接続する時のまとめ。Windows 10、Windows Server 2016、2019 - .zapping
ピンバック: Windows Server 2019 へ OpenSSH をインストール。鍵認証を使ってSSH 接続する。 - .zapping