LinuxでSSH秘密鍵/公開鍵を作成する方法

今回はLinuxでSSH秘密鍵/公開鍵を作成する方法について解説致します。

◾️ssh-keygenコマンドを使用する方法

下記コマンドを使用し鍵ペアを作成します。

ssh-keygen -t 鍵のタイプ -b ビット数 -m 鍵ファイルの形式

タイプについて

タイプ説明
rsa公開鍵暗号方式の一つであり、デジタル署名や暗号化に広く使用されています
dsaデジタル署名のための公開鍵暗号方式です。
ecdsa非常に高いセキュリティレベルが必要な場合に使用されます。
ed25519高速で安全な楕円曲線暗号の一つです。

ビット数について

ビット数説明
2048ビット一般的なWebサーバーやSSHキーペアで使用されるビット数です。
3072ビットより高いセキュリティレベルが必要な場合に使用されます。
4096ビット非常に高いセキュリティレベルが必要な場合に使用されます。

◾️作成例

下記はssh-keygenを使用した作成例となります。鍵のタイプは「rsa」としビット数は「3072ビット」とします。

ssh-keygen -t rsa -b 3072 -m PEM

上記を実行すると下記のように対話モードで鍵を作成する事ができます。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
.our identification has been saved in 
.pub.public key has been saved in 
The key fingerprint is:
SHA256:ZL33KnCzyhUavLTSAqUWQK1NYdC9V4G4d1ERn5b9cls root@servername
The key's randomart image is:
+---[RSA 3072]----+
| .++oo . ..o+o   |
|   o+ o ..o  . + |
|   +. .oo...  = .|
|  . .+o+o .. .  .|
|    +  oS.o . . E|
|   . . o.=oo . oo|
|      o =o.o  .. |
|       + .o  .   |
|        o. ..    |
+----[SHA256]-----+

今回は全てデフォルト設定で作成を行いました。

デフォルトではユーザーディレクトリ配下の下記に作成されます。

/ユーザーディレクトリ/.ssh/id_rsa

次に作成した鍵ペアをSSHに利用できるようにリネームします。

下記ディレクトリに移動します。

cd ~/.ssh

公開鍵をSSHで利用できるようにid_rsa.pubからauthorized_keys名に変更します。

mv id_rsa.pub authorized_keys

次に秘密鍵をローカルにダウンロードします。

ダウンロードが完了しましたらサーバー上にある秘密鍵を削除します。

rm -f id_rsa