繁体   English   中英

恢复丢失的 AWS EC2 密钥对

[英]Recovering lost AWS EC2 Key Pairs

AWS 菜鸟在这里。 我在我的 AWS 账户下创建了几个 EC2 实例,并为所有这些实例重用了相同的密钥对。 相信(IIRC) 我已经从 AWS 内部生成了密钥对,但这可能是错误的。

上周末我卖掉了我的旧笔记本电脑(在完全擦除硬盘之后)并买了一台新笔记本电脑。 我现在只记得( :facepalm )我忘记将所有 SSH 私钥复制到闪存驱动器,而且我不再拥有它们。

我想要/需要做的就是通过 SSH 连接到我的 EC2 实例,但为此我需要我的 SSH 密钥。 我仍然可以访问 AWS 控制台,并且可以登录并查看我所有的 EC2 密钥对。 但是我没有看到任何用于下载它们或使用新密钥对更新我的 EC2 实例的选项。

所以我问:

  1. 我是否可以以某种方式恢复我现有的密钥对,以便我可以通过 SSH 连接到我的 EC2 实例? 我可以再次登录 AWS 控制台。 如果没有,那么...
  2. 是否可以生成另一个密钥对并为我现有的密钥对“交换”?

我真的不想拆除旧的 EC2 实例并重新配置新的实例,我需要大约一周的时间才能完成(尽管可以说,这对我有用!)。

重建不应该是必要的。 我建议选择 2,因为它更快更容易。

1.> 是否可以更改/附加新密钥?

  • 关闭要访问的 ec2 实例(“目标”)。

  • 创建一个新的(“临时”)实例。

  • 从目标实例分离主 EBS 卷(注意其当前附件!)。

  • 在临时实例上附加/挂载目标卷。

  • 在安装的卷上编辑适当的 authorized_keys 文件。

  • 卸载目标卷,并重新附加到目标 ec2 实例(使用您在分离时记下的配置)

  • 启动目标实例并使用新密钥登录。

  • 删除临时实例

2.> 是的。 快照实例。 从快照中选择不同的密钥配置一个新实例(在启动向导结束时单击启动时会出现密钥对弹出窗口)

  • 第 1 步:转到 IAM。
  • 步骤 2:创建具有“AmazonSSMManagedInstanceCore”权限的策略。
  • 步骤 3:创建一个新角色并将之前创建的策略附加到该角色。
  • 第四步:进入EC2,在“Actions”==>“Security”==>“Modify IAM role”中选择实例,选择创建的角色并保存。
  • 第五步:等待1小时。 需要一些时间来解决。
  • 第六步:选择EC2,点击“连接”==>“会话管理器”==>“连接”

您将获得与该会话的会话,您可以向授权密钥添加新密钥。

将 ec2 用户数据更改为多部分 mime。

零件:

  • 云配置
cloud_final_modules:
- [scripts-user, always]
  • 外壳脚本

覆盖 /home/ec2-user/.ssh/authorized_keys

参考这篇博文替换ec2 ssh key

您可以使用用户数据或系统管理器替换新密钥。

使用用户数据:

  1. 从 AWS EC2 控制台创建新的密钥对

  2. 使用以下 cmd 从下载的密钥对生成公钥:ssh-keygen -y -f .pem

  3. 停止 EC2 实例并编辑实例的用户数据并传递以下脚本并启动实例

    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: - <**Paste the Public key here**>

    现在,您将能够使用下载的密钥对登录 EC2 实例。

使用系统管理器:

  1. 如果实例是 AWS Systems Manager 中的托管实例,您可以使用 AWSSupport-ResetAccess 文档来恢复丢失的密钥对。
  2. 打开 AWS Systems Manager 控制台,在左侧导航窗格中选择自动化,然后单击执行自动化。 在自动化文档部分选择亚马逊拥有。 在运行手册列表中,搜索 AWSSupport-ResetAccess
  3. 在执行自动化文档页面中,选择简单执行。 在文档详细信息部分,确认文档版本设置为默认。 在输入参数部分,在参数中指定实例 ID、子网 ID 和实例类型并执行。
  4. 自动化完成后,新的 ssh 私钥将保存并加密在参数存储和名为 /ec2rl/openssh//key 的参数存储中

您可以参考以下链接了解更详细的步骤:

https://cloudsolutionsonline.blogspot.com/2021/11/connect-to-linux-ec2-instance-if-ssh.html?m=1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM