AWSのEC2のキーペアを無くした時の対処方法

サーバ

AWSのEC2のキーペアを、ダウンロードフォルダに入れたままにしており、不覚にも削除してしまいました。その時の対応手順を記録しておきます。

新しいキーペアを作成する

まず、AWSマネジメントコンソールにアクセスし、「キーペアを作成」から、再作成します。

作成すると、pemファイルをダウンロードされますので、これから公開キーを作成するために、Linux環境にコピーします。ssh-keygenコマンドが使用できる環境であればどこでも良いのですが、私はwindowsを使用しておりますので、VirtualBoxで動かしたLinux環境へコピーしました。

公開キーを作成する

pemファイルをコピーしたLinux環境で、下記のコマンドを実行します。
出力された公開キーをコピーして、テキストファイルなどに控えておきます。(※1)

$ ssh-keygen -y -f pemファイル

EC2サーバのユーザデータを変更する

まず、EC2サーバ(インスタンス)を停止します。
 [アクション]、[インスタンスの設定]、[ユーザーデータを編集] の順に選択します。
 次のスクリプトを [Edit user data] ダイアログボックスにコピーします。(※2)
日本語で書いてある部分(2か所)は、皆様の環境に合わせて修正ください。

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
  - name: ユーザ名(デフォルトだとec2-user)
    ssh-authorized-keys: 
    - ここに※1でコピーしたキーを全部張り付け

保存をして、インスタンスを起動します。
作成したpemファイルを使用してsshでログインできるか確認します。
ここで、再度、インスタンスを停止し、※2で張り付けたテキストを削除し、保存します。
そして最後にインスタンスを起動して終了です。
念のため、もう一度作成したpemファイルを使用してsshでログインできることを確認します。

<参考URL>
https://aws.amazon.com/jp/premiumsupport/knowledge-center/user-data-replace-key-pair-ec2/