[AWS] AWS CLIからSSH用のキーペアを作る

はじめに

EC2を作るときにそのEC2にSSHアクセスするためのキーペアを選びます。このとき新しいキーペアを作るか既存のキーペアを使うか選べるのですが、今回はそのキーペアをCLIから作ってみましょう。awscli の設定については「AWS CLIをセットアップしよう」に記載しています。

キーペアを作る

awscli が設定されていればキーペアを作るのは簡単です。下のコマンドを実行するだけでキーペアが出来上がります。

# ~/.ssh ディレクトリがない人は mkdir ~/.ssh しておいてください
aws ec2 create-key-pair --key-name aws-example-key --query 'KeyMaterial' --output text >~/.ssh/aws-example-key.pem

--key-name はAWS上でのこのキーペアの名称を入力します。 --query 'KeyMaterial' の部分を指定することで「unencryptedでPEMエンコードされたRSA秘密鍵」を生成します。これはこういうものだと思ってもらってとりあえずはいいと思います。あとは --output text でテキストとして出力されるものを ~/.ssh/aws-example-key.pem に保存しています。

鍵を使うためには適切なパーミッションを指定しておく必要があるので、↓のように 400 に指定します。

chmod 400 ~/.ssh/aws-example-key.pem

これでキーペアの作成完了です。

キーペアの確認

では、AWS上に本当にキーペアが作成されたのか、これも awscli から確認してみましょう。これには ec2 describe-key-pairs というコマンドを↓のように使います。正常にキーペアが作られていればレスポンスが返ってきます。

aws ec2 describe-key-pairs --key-name aws-example-key
# {
#     "KeyPairs": [
#         {
#             "KeyName": "aws-example-key",
#             "KeyFingerprint": "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00"
#         }
#     ]
# }

また、GUIからEC2を作る際にも選択できるようになっています。

キーペアの削除

キーペアが不要になったら awscli から削除もできます。↓を実行してみましょう。削除系のコマンドはちょっと怖いので --dry-run でどうなるか確認してから実行するとどうなるかわかります。

aws ec2 delete-key-pair --key-name aws-example-key --dry-run
# An error occurred (DryRunOperation) when calling the DeleteKeyPair operation: Request would have succeeded, but DryRun flag is set.

Errorと言っているので一瞬「おや?」と思いますが、ちゃんと DryRunOperation によるエラーであることがわかります。また、 Request would have succeeded と言っているので大丈夫です。 --dry-run フラグを削除すれば実際にキーペアは削除されます。

まとめ

このようにキーペアを awscli から作成・削除することができます。

APN Consulting Partner
スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。