【发布时间】:2018-02-15 15:39:44
【问题描述】:
如果我为我的 EC2 实例单击“连接”按钮,步骤 #2 会引用一个不再存在的密钥对的私钥。
2) Locate your private key file (something.pem).
但是关联的密钥对不存在,因为我在 AWS 控制台中删除了它。这只是 AWS 控制台中的 UI 问题,还是我对密钥的管理方式有误解?
【问题讨论】:
如果我为我的 EC2 实例单击“连接”按钮,步骤 #2 会引用一个不再存在的密钥对的私钥。
2) Locate your private key file (something.pem).
但是关联的密钥对不存在,因为我在 AWS 控制台中删除了它。这只是 AWS 控制台中的 UI 问题,还是我对密钥的管理方式有误解?
【问题讨论】:
我不确定你是否在谈论这个,但如果你删除了你的私钥,你就无法访问你的实例。
Amazon EC2 不会保留您的私钥的副本;因此,如果你 丢失私钥,无法恢复。如果你失去了 实例存储支持的实例的私钥,您无法访问 实例;您应该终止实例并启动另一个 使用新密钥对的实例。如果你丢失了一个私钥 EBS 支持的 Linux 实例,您可以重新获得对您的实例的访问权限。为了 更多信息,请参阅在丢失时连接到您的 Linux 实例 您的私钥。
https://docs.aws.amazon.com/en_us/AWSEC2/latest/UserGuide/ec2-key-pairs.html
【讨论】:
“连接”UI 中的命令指的是实例启动期间指定的密钥对的名称。该名称与您在实例的“描述”选项卡中看到的密钥对名称相匹配。这是无法改变的。即使您在 AWS 控制台中删除了密钥对,您启动的实例仍然与该密钥对关联。
就我而言,ISP 问题导致我的 IP 地址临时更改,因此我的新 IP 地址不再与我的安全组中的 IP 地址匹配。在我最初的调试工作中,我采取了各种可能导致我的私钥不再工作的事情,所以当我更正我的安全组中的 IP 地址时,我仍然被锁定。 (然后我继续删除了密钥对,但仍然看到它在 AWS UI 中被引用,正如我的问题中所解释的那样。)
幸运的是,我的是一个 EBS 支持的 Linux 实例,所以我能够恢复,如下所示:
然后我还有一个影响 SSH 访问的问题,其他人可能不会遇到:我本地 known_hosts 文件中的 RSA 密钥现在坏了。当我尝试通过 SSH 连接到 AWS 时,我在终端中看到一个错误,该错误引用了我 known_hosts 中的特定行,这就是问题所在。这是错误消息的重要部分:
Offending RSA Key in /some/path/to/known_hosts:3
最后的数字告诉您 known_hosts 中的哪一行是问题所在,在我的情况下,我只是删除了该行,然后能够再次通过 SSH 连接到 AWS,并且我的新实例与旧实例的工作方式相同。
【讨论】: