SSH 鍵ペア・API 鍵ペアの作り方おさらい
ある VM に SSH 接続する時に使う鍵ペアとか、API Key として認証に使用する鍵ペアの作り方をおさらいする。それぞれは何らかの記事で紹介したことがあると思うが、コマンド単体で紹介したことがなかったので。
目次
SSH 鍵ペアの作り方
$ ssh-keygen -t rsa -b 4096 -N '【パスフレーズ】' -C '【コメント】' -f "${HOME}/PATH/TO/id_rsa"
Generating public/private rsa key pair.
Your identification has been saved in /Users/Neo/PATH/TO/id_rsa.
Your public key has been saved in /Users/Neo/PATH/TO/id_rsa.pub.
The key fingerprint is:
SHA256:pUXKnmb9pR2P5nhJOLGoz3L5ugsCsXW8+HN+phOM8tQ test
The key's randomart image is:
+---[RSA 4096]----+
| . |
| o o |
| . . = o |
| + + B . |
| o . S+.. +o |
| ..+o E.++.+ |
| .++..ooo+..|
| .+*+ o+o |
| +OXo.. |
+----[SHA256]-----+
-b 4096
と指定したとおり、4096 bit で作成した-N ''
とすると、パスフレーズなしの秘密鍵ファイルが生成できる-f
でファイルの出力先を指定。${HOME}/PATH/TO/id_rsa
(秘密鍵) と${HOME}/PATH/TO/id_rsa.pub
(公開鍵) の2ファイルが生成される- 各オプションを記述しないと、対話式プロンプトの中で入力していくことになる
生成できたファイルの内容サンプルは以下。
id_rsa
(秘密鍵)
-----BEGIN OPENSSH PRIVATE KEY-----
……中略……
-----END OPENSSH PRIVATE KEY-----
id_rsa.pub
(公開鍵)
ssh-rsa ……中略…… コメント
API 鍵ペアの作り方
いわゆる RSA 鍵のことだ。
# 秘密鍵ファイルを作成する
$ openssl genrsa -out "${HOME}/PATH/TO/key-private.pem" 4096
Generating RSA private key, 4096 bit long modulus
..........++
....................................................++
e is 65537 (0x10001)
# 秘密鍵ファイルから公開鍵ファイルを作成する
$ openssl rsa -pubout -in "${HOME}/PATH/TO/key-private.pem" -out "${HOME}/PATH/TO/key-public.pem"
writing RSA key
# オマケ : 秘密鍵ファイルから「フィンガープリント」を出力する
$ openssl rsa -pubout -outform DER -in "${HOME}/PATH/TO/key-private.pem" | openssl md5 -c
writing RSA key
13:e4:93:84:7d:85:73:fe:c9:be:0b:de:79:9f:2f:92
生成できたファイルの内容サンプルは以下。
key-private.pem
(RSA 秘密鍵)
-----BEGIN RSA PRIVATE KEY-----
……中略……
-----END RSA PRIVATE KEY-----
key-public.pem
(RSA 公開鍵)
-----BEGIN PUBLIC KEY-----
……中略……
-----END PUBLIC KEY-----
以上。