恢复丢失的AWS EC2密钥对

时间:2018-04-10 09:15:13

标签: amazon-ec2 ssh ssh-keys key-pair

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

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

我想要/需要做的就是SSH进入我的EC2实例,但要做到这一点,我需要我的SSH密钥。我仍然可以访问AWS控制台,我可以登录并查看我的所有EC2密钥对。但我没有看到任何下载它们或使用新密钥对更新我的EC2实例的选项。

所以我问:

  1. 我是否有可能以某种方式恢复现有的密钥对,以便我可以通过SSH连接到我的EC2实例?我可以再次登录AWS控制台。 如果没有,那么......
  2. 是否可以生成另一个密钥对,并且"将其交换出来"对于我现有的密钥对?
  3. 我真的不想拆除旧的EC2实例并重新配置新的EC2实例,这将花费我们大约一个星期的时间(尽管可以说,这对我有用!)。

2 个答案:

答案 0 :(得分:3)

重建不应该是必须的。我建议选项2更快更容易。

1>可以更改/附加新密钥吗?

  • 关闭您要访问的ec2实例(" target")。

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

  • 从目标实例中删除主EBS卷(记下其当前附件!)。

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

  • 在已装载的卷上编辑相应的authorized_keys文件。

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

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

  • 删除临时实例

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

答案 1 :(得分:0)

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

零件:

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

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

请参阅此博客文章 replace ec2 ssh key