AWS 密钥对丢失如何恢复

问题描述 投票:0回答:5
  • 我丢失了 EC2 实例密钥对,我无法从 AWS 管理控制台再次下载它吗?

  • 请告知我如何以最简单的方式再次连接同一个实例?

amazon-web-services amazon-ec2 instance aws-cli
5个回答
7
投票

据我所知,没有办法恢复丢失的密钥对。亚马逊,即使他们可以,也不会再给你了。

如果您仍然可以访问 aws 控制台,您可以创建正在运行的实例的快照,并从该快照中调出一个新实例,并为其分配一个新的密钥对 - 这次制作一些副本并将其存储在几个安全的地方地方。


6
投票

无法恢复丢失的密钥对。除了@E.J. 的建议之外。 Brennan,还有另一种方法可以访问您的实例,而无需通过快照重新创建它。

停止实例,并解除启动盘与实例的关联。然后,您可以将该卷与另一个实例关联,安装它,然后就可以访问文件系统。

更新 /home/ec2-user/.ssh 中的authorized_keys,然后恢复步骤 - 与临时实例解除关联,将其与原始实例关联,然后重新启动原始实例。


2
投票

如果您有私钥,您可以从私钥重新创建公钥:

ssh-keygen -f "your-private-key.pem" -y > "newPublicKey.pem"

新密钥生成后,在编辑器中打开,然后复制内容。

转到AWS控制台→EC2控制台→密钥对→导入密钥对。

在选项中,使用丢失密钥的名称,然后粘贴您复制的公钥数据。


1
投票

还有另一种方法可以做到这一点,无需拆卸实例,这是对我有用的唯一方法:

1- 使用 ssh-keygen 或使用 putty 在实例中创建另一个密钥对(如果使用 putty,请使用 putty gen 创建 ppk 文件)

2-使用pem文件创建ppk文件(其中有密钥的公共部分和私有部分)

3-通过AWS内部的EC2实例连接访问实例

4- 使用 vim 访问文件 .ssh/authorized_keys 并添加或替换为以下内容: ssh-rsa ppk_public_part pem_filename_without_extension

5-保存authorized_keys文件

6- 使用您机器上的 pem 文件测试访问

重要:您仍然需要确保安全组允许通过您的 IP 和端口 22 访问实例,才能正确使用 SSH。


0
投票
如果您丢失了私钥,很遗憾您无法取回。但是,您可以访问您的实例,创建新的私钥/公钥对,并将这个新的公钥存储在您的 .ssh 目录中。以下是一些登录选项:

EC2 实例连接(受 Amazon Linux 2 2.0.20190618+ 或 Ubuntu 20.04+ 支持):

从 2019 年左右开始,您可以使用 EC2 Instance Connect 连接到管理控制台中的实例。只需提供用户名和wala!您必须打开 22 端口,如果该端口关闭,则可以修改实例的安全组。

会话管理器:(此处列出了支持的操作系统:https://docs.aws.amazon.com/systems-manager/latest/userguide/operating-systems-and-machine-types.html

您可以使用的另一个选项是会话管理器。为此,您不需要打开端口 22。您只需将 IAM 角色应用到附加了 AmazonSSMManagedInstanceCore 托管策略的实例。

这两个选项也可在 AWS CLI 上使用任一命令来使用:

aws ec2-instance-connect ssh --instance-id <your_instance_id>


aws ssm start-session --target <your_instance_id>


但是,如果您希望使用 SSM,则需要 CLI 的会话管理器插件 (

https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-插件.html

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.