※こちらの記事は個人ブログに移行しました。
若い頃にSSHのキーペアはローカルで作って公開鍵だけサーバに転送するんだよって誰かに教わりましたし。
#ローカルマシンでキーペアを作成する
Amazon EC2 では、次の形式を使用できます。
・OpenSSH パブリックキー形式(~/.ssh/authorized_keys の形式)
・Base64 でエンコードされた DER 形式
・SSH パブリックキーファイル形式(RFC4716 で指定)
Amazon EC2 では、DSA キーを使用できません。キージェネレータが、RSA キーを作成するように設定されていることを確認してください。
サポートされている長さ: 1024、2048、および 4096。
$ KEYNAME=key.pem
$ ssh-keygen -t rsa -f ${KEYNAME}
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in key.pem.
Your public key has been saved in key.pem.pub.
The key fingerprint is:
29:d5:92:6b:e8:f7:43:87:14:2d:13:4a:d7:de:07:ba hoge@hogehoge.local
The key's randomart image is:
+--[ RSA 2048]----+
| . o+ |
| . =+ o . |
| = .= o . |
| o +. o . .|
| o S. . . . |
| . o o E |
| . .. . |
| . .. |
| .. |
+-----------------+
#AWSに公開鍵をインポートする
$ aws ec2 import-key-pair --key-name ${KEYNAME} --public-key-material file://${KEYNAME}.pub
{
"KeyName": "key.pem",
"KeyFingerprint": "b1:4c:6c:bf:de:fc:89:ce:6c:5a:bc:ae:0a:a9:da:95"
}
この方法なら最初からキーペアにパスフレーズを設定することもできます。
セキュリティグループでGlobalからSSHを許可してるインスタンスにはパスフレーズ付きの鍵、
VPC内でのみSSHを許可してるインスタンスにはパスフレーズなしの鍵、みたいな使い分けもいいですね。
その場合、VPC内でのみのインスタンスに設定する鍵はGlobalから許可してるインスタンスで作って登録するのがいいんでしょうかね。