最初の起動後に SSH キーペアを紛失した場合、Amazon EC2 インスタンスに接続するにはどうすればよいですか?
最終更新日: 2021 年 2 月 1 日
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに接続しようと考えていますが、SSH キーペアを紛失しました。インスタンスに接続するにはどうすればよいですか?
解決方法
警告: この手順を開始する前に、次の点にご注意ください。
- この手順では、EC2 インスタンスを停止して開始する必要があります。インスタンスストアボリュームのデータは失われることに注意してください。詳細については、「インスタンスのルートデバイスタイプの判別」を参照してください。インスタンスストアボリュームで保持するデータのバックアップを作成します。
- インスタンスを停止および再起動すると、インスタンスのパブリック IP アドレスが変更されます。インスタンスに外部トラフィックをルーティングするときは、パブリック IP アドレスではなく、Elastic IP アドレスを使用することをお勧めします。
方法 1: user-data を入力する
1. 新しいキーペアを作成します。
2. Amazon EC2 コンソールでプライベートキーを作成する場合は、キーペアのパブリックキーを取得します。
3. Amazon EC2 コンソールを開きます。
4. インスタンスを停止します。
5. [Actions]、[Instance Settings]、[Edit user data] の順に選択します。
6. 次のスクリプトを [Edit 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. [Actions]、[Instance Settings]、[Edit user data] の順に選択します。
12. [Edit user data] ダイアログボックスにあるすべてのテキストを削除し、[Save] をクリックします。
13. インスタンスを起動します。
方法 2: AWS Systems Manager を使用する
インスタンスが AWS Systems Manager のマネージドインスタンスである場合は、AWSSupport-ResetAccess ドキュメントを使用して、紛失したキーペアを復旧します。AWSSupportResetAccess は、指定された EC2 インスタンスで EC2 Rescue for Linux ツールを使用して、新しい SSH (パブリック/プライベート) キーペアを自動的に生成して追加します。
インスタンスの新しい SSH プライベートキーが暗号化され、AWS Systems Manager Parameter Store に保存されます。パラメータ名は、/ec2rl/openssh/instance_id/key です。 このパラメータの値をコンテンツとして新しい .pem ファイルを作成し、これを使用して到達不可能なインスタンスに接続し直します。
注意: 自動化ワークフローで、パスワードが有効な Amazon マシンイメージ (AMI) のバックアップが作成されます。新しい AMI は自動的に削除されず、アカウントに残ります。
これらの AMI を見つけるには、次の手順に従います。
1. Amazon EC2 コンソールを開き、[AMI] を選択します。
2. 検索フィールドに自動化実行 ID を入力します。
方法 3: Amazon EC2 Instance Connect を使用する
インスタンスが Amazon Linux 2 2.0.20190618 以降の場合は、EC2 Instance Connect を使用してインスタンスに接続することができます。