メニュー 閉じる

暗号鍵( 秘密鍵 と 公開鍵 )を生成する。
ssh-keygen コマンドのオプションについて。

ssh-keygen は公開鍵、秘密鍵のペアを生成するコマンドです。

生成時のオプションについてまとめました。

暗号鍵( 秘密鍵 と 公開鍵 )を生成する。
ssh-keygen コマンドのオプションについて。

秘密鍵と、公開鍵を作成するコマンド

実行すると、秘密鍵と公開鍵のペアが生成されます。
「.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】キーを押すと、括弧内の値(デフォルト)が割り当てられます。

  1. Enter file in which to save the key (/home/uniuni/.ssh/id_rsa):
  2. Enter passphrase (empty for no passphrase):
  3. Enter same passphrase again:
  1. 生成するファイルの名前
  2. パスワード
  3. パスワード確認

-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 -qt 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:~ $ 

参考サイト

SSH 鍵

ssh-keygen コマンドラインユーティリティ

manページ  — SSH-KEYGEN

Posted in リモート接続

関連投稿

4件のコメント

  1. ピンバック:Raspberry Pi OS でSSH 接続を有効にする。 - .zapping

  2. ピンバック:WindowsServer 2016 にsshd をインストールしてSSH 接続する。 - .zapping

  3. ピンバック:Windows で SSH 接続する時のまとめ。Windows 10、Windows Server 2016、2019 - .zapping

  4. ピンバック:Windows Server 2019 へ OpenSSH をインストール。鍵認証を使ってSSH 接続する。 - .zapping

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です