我是 AWS 新手。我在我的 AWS 账户下创建了一些 EC2 实例,并对它们全部重复使用了同一个密钥对。我相信(IIRC)我已经从 AWS 内部生成了密钥对,但这可能是错误的。
上周末,我卖掉了旧笔记本电脑(硬盘被彻底清空后),换了一台新电脑。我现在才想起来(:facepalm
)我忘了将所有 SSH 私钥复制到闪存驱动器上,而且我不再拥有它们了。
我想要/需要做的就是通过 SSH 进入我的 EC2 实例,但要做到这一点,我需要我的 SSH 密钥。我仍然拥有 AWS 控制台访问权限,并且可以登录并查看我的所有 EC2 密钥对。但我没有看到任何下载它们或使用新密钥对更新我的 EC2 实例的选项。
因此我问:
- 我是否可以以某种方式恢复现有的密钥对,以便可以通过 SSH 进入我的 EC2 实例?我可以再次登录 AWS 控制台。如果不是,那么...
- 是否可以生成另一个密钥对并将其“替换”为我现有的密钥对?
我真的不想拆除我的旧 EC2 实例并重新配置新的实例,这将花费我大约一周的时间(尽管可以说,这对我有利!)。
答案1
只能重新获得对 EBS 支持的 Linux 实例的访问权限。
但对于常规实例,无法恢复密钥,因为 AWS 不会保存其副本。
因此,在您的情况下,如果您的实例不是 EBS 支持的,那么您将必须销毁这些实例,创建一个新密钥,然后使用新密钥创建新实例。
更多信息请见这里。
这是来自上述链接的相关信息:
Amazon EC2 不会保留您的私钥副本;因此,如果您丢失了私钥,则无法恢复它。如果您丢失了实例存储支持的实例的私钥,则无法访问该实例;您应该终止该实例并使用新的密钥对启动另一个实例。如果您丢失了 EBS 支持的 Linux 实例的私钥,则可以重新获得对实例的访问权限。有关更多信息,请参阅在丢失私钥的情况下连接到您的 Linux 实例。
编辑#1:
为了重新获得对 ebs 支持的实例的访问权限,您必须停止该实例,分离其根卷并将其作为数据卷附加到另一个实例,修改 authorized_keys 文件以添加您新创建的 ssh 密钥,将卷移回原始实例,然后重新启动该实例。
关于该过程的信息可以找到这里。