デシリットルの野望

何でも知りたい。そんな野望を抱いています。「ですます調」と「だである調」が混在しているのは仕様。

ssh接続の為の鍵ペア生成方法

 公開鍵認証方式によるssh接続を行う為、公開鍵と秘密鍵を生成する。いつもはTera Termを使って生成してたけど、今回はそれとは別にRaspberry Pi OS上での生成手順もまとめてみようと思う。

Tera Termによる鍵ペア生成

 まずは、使い慣れたTera Termによる鍵生成を。Tera Termを起動しメニューバーの設定(S) > SSH鍵生成(N)を選択する。

f:id:torchlight1182:20201011165356p:plain:w300

 次に、生成条件を入力する。デフォルト設定は以下のとおり。今回はデフォルトのまま鍵を生成する。

鍵の種別 鍵の長さ
RSA 2048bit

 画面中の生成(G)ボタンを押すと、鍵の生成が始まる。

f:id:torchlight1182:20201011165359p:plain:w300

 鍵の生成が完了すると、パスフレーズの入力欄が有効化される。パスフレーズを入力した後、公開鍵の保存(I)秘密鍵の保存(P)を押して、それぞれの鍵を任意の場所に保存する。ちなみに、id_rsa秘密鍵で、id_rsa.pubが公開鍵らしい。

f:id:torchlight1182:20201011165402p:plain:w300

 これで、Tera Termによる鍵ペアの生成は完了。鍵ペア、ゲットだぜ!

Raspberry Pi OS上での鍵ペア生成

 Linux上で鍵ペアを生成するには、ssh-keygenコマンドを使用する。まず、man ssh-keygenを見てみる。

DESCRIPTIONより抜粋

If invoked without any arguments, ssh-keygen will generate an RSA key.

オプション-bの説明より抜粋

For RSA keys, minimum size is 1024 bits and the default is 2048 bits.

生成される鍵の種類と長さのデフォルト値はTera Termと一緒みたい。 特にオプションを指定せず、デフォルト値(=RAS 2048bit)で鍵を生成してみる。以下実行結果。

pi@raspberrypi:~ $ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Created directory '/home/pi/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256: SAMPLEsampleSAMPLEsampleSample pi@raspberrypi
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|     Sample      |
|                 |
|                 |
|                 |
|                 |
+----[SHA256]-----+

生成の流れはこんな感じ

  1. 実行
  2. 鍵の保存場所を指定
    • 何も入力しなければ、デフォルト値が使用される
    • 上記の例ではデフォルト値は/home/pi/.ssh/id_rsa
  3. パスフレーズの入力、確認
  4. 公開鍵と秘密鍵が保存される
pi@raspberrypi:~/.ssh $ ls
id_rsa  id_rsa.pub

なるほど、たしかに保存されている。鍵ペア、ゲットだぜ!!