今回は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