RSA(PKCS#1形式、PEM形式)パスフレーズなし
今までよく使ってたフォーマット。 時代遅れになりつつあるらしい。
ssh-keygen -N "" -m pem -b 2048 -f hoge.pem -C "HOGE@EXAMPLE.COM"
-----BEGIN RSA PRIVATE KEY-----
| オプション | 内容 |
|---|---|
| -N | パスフレーズ |
| -t | 暗号の種類。 rsa, dsa, ed25519, ecdsa など 未指定時は rsa |
| -m | RSAのときの出力フォーマット。 pem, pkcs8, rfc4716 など 未指定時は rfc4716 |
| -b | RSAのときのビット長。 未指定時は 3072 |
| -C | 公開鍵のケツにつくコメント |
秘密鍵の先頭行を見ると、なんとなく暗号の種類とフォーマットがわかる。
また公開鍵の頭を見れば種類がわかる。
公開鍵はssh-keygenがついでに作るけど、次のコマンドでも作れる
ssh-keygen -y -f hoge.pem > hoge.pub
RSA(PKCS#1形式、PEM形式)パスフレーズあり
ssh-keygen -N "abcde" -m pem -b 2048 -f hoge.pem
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
RSA(PKCS#8形式)パスフレーズあり
ssh-keygen -N "abcde" -m pkcs8 -b 2048 -f hoge.pem
-----BEGIN ENCRYPTED PRIVATE KEY-----
RSA(OPENSSH形式、独自形式)
今はこれが標準らしい。TeraTermが作る秘密鍵もこれだった。
ssh-keygen -N "" -m rfc4716 -b 2048 -f hoge.pem
-----BEGIN OPENSSH PRIVATE KEY-----
ED25519
短いけど頑丈な鍵らしい。これにしとけという記事をよく見る。
ssh-keygen -N "" -t ed25519 -f hoge.pem
-----BEGIN OPENSSH PRIVATE KEY-----
ssh-ed25519
ECDSA
短いけど頑丈な鍵らしい。
ssh-keygen -N "" -t ecdsa -f hoge.pem
-----BEGIN OPENSSH PRIVATE KEY-----
ecdsa-sha2-nistp256