我想连接到我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例,但是丢失了 SSH 密钥对。如何连接到实例?
解决方法
重要提示:
方法 1、2 和 3 需要停止并启动实例。但应注意以下几点:
- 如果您的实例受实例存储支持或具有包含数据的实例存储卷,则在实例停止时数据将丢失。有关更多信息,请参阅确定实例的根设备类型。请务必备份您想保存在实例存储卷上的所有数据。
- 停止并重新启动实例会更改实例的公有 IP 地址。将外部流量路由到您的实例时,最佳做法是使用 Elastic IP 地址,而不是公有 IP 地址。
方法 1:输入用户数据
1. 创建新密钥对。
2. 如果您在 Amazon EC2 控制台中创建私钥,则在公钥中检索密钥对。
3. 打开 Amazon EC2 控制台。
4. 停止您的实例。
5. 依次选择 Actions(操作)、Instance settings(实例设置)、Edit user data(编辑用户数据)。
6. 将下列脚本复制到编辑用户数据对话框中:
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 阶段完成后,请验证公钥是否已被替换。
重要提示:由于脚本包含密钥对,请删除用户数据字段中的脚本。
10. 停止您的实例。
11. 依次选择 Actions(操作)、Instance Settings(实例设置)、Edit user data(编辑用户数据)。
12. 删除Edit user data(编辑用户数据)对话框中的所有文本,然后选择 Save(保存)。
13. 启动您的实例。
https://aws.amazon.com/cn/premiumsupport/knowledge-center/user-data-replace-key-pair-ec2/