最初の起動後に SSH キーペアを紛失した場合、Amazon EC2 インスタンスに接続するにはどうすればよいですか?

最終更新日: 2020 年 2 月 20 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに接続しようと考えていますが、SSH キーペアを紛失しました。インスタンスに接続するにはどうすればよいですか?

解決方法

警告: この手順を開始する前に、次の点にご注意ください。

方法 1: user-data を入力する

1.    新しいキーペアを作成します。

2.    Amazon EC2 コンソールでプライベートキーを作成する場合は、キーペアのパブリックキーを取得します

3.    Amazon EC2 コンソールを開きます。

4.    インスタンスを停止します。

5.    [Action] 、[Instance Settings]、[View/Change User Data] の順にクリックします。

6.    次のスクリプトを [View/Change User Data] ダイアログボックスにコピーします。

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: username
    ssh-authorized-keys: 
    - PublicKeypair

username をご自分のユーザー名 (ec2-user など) に置き換えます。デフォルトのユーザー名を入力するか、カスタムユーザー名を入力できます (以前にインスタンス用に設定されている場合)。デフォルトのユーザー名のリストについては、インスタンスに接続するための一般的な前提条件を参照してください。

PublicKeypair をステップ 2 で取得したパブリックキーに置き換えます。必ず ssh-rsa で始まるパブリックキー全体を入力してください。

7.    [Save] をクリックします。

8.    インスタンスを起動します

9.    cloud-init フェーズが完了したら、パブリックキーを置き換えたことを確認します。

重要: スクリプトにはキーペアが含まれているため、[User Data] フィールドからスクリプトを削除します。

10.    インスタンスを停止します

11.    [Action] 、[Instance Settings]、[View/Change User Data] の順にクリックします。

12.    [View/Change User Data] ダイアログボックスにあるすべてのテキストを削除し、[Save] をクリックします。

13.    インスタンスを起動します

注意: インスタンスが Amazon Linux 2 2.0.20190618 以降の場合は、EC2 Instance Connect を使用してインスタンスに接続することができます。

方法 2: AWS Systems Manager を使用する

到達不可能なインスタンスが AWS Systems Manager にマネージドインスタンスとしてリストされている場合は、AWSSupport-ResetAccess ドキュメントを使用して、紛失したキーペアのシナリオから復旧できます。この自動化ドキュメントでは、指定された EC2 インスタンスで EC2Rescue for Linux ツールを使用して、新しい SSH (パブリック/プライベート) キーペアを自動的に生成して追加します。

インスタンスの新しい SSH プライベートキーが暗号化され、パラメータストアに保存されます。パラメータ名は /ec2rl/openssh/instance_id/key です。このパラメータの値をコンテンツとして新しい .pem ファイルを作成し、これを使用して到達不可能なインスタンスに接続し直します。

注意: 自動化ワークフローで、パスワードが有効な Amazon マシンイメージ (AMI) のバックアップが作成されます。新しい AMI は自動的に削除されず、アカウントに残ります。

これらの AMI を見つけるには:

1.    Amazon EC2 コンソールを開き、[AMI] を選択します。

2.    検索フィールドに自動化実行 ID を入力します。