为什么AWS控制台UI仍然引用我删除的密钥对?

时间:2018-02-15 15:39:44

标签: ssh amazon

如果我单击EC2实例的“连接”按钮,则步骤#2引用不再存在的密钥对的私钥。

2) Locate your private key file (something.pem).

但关联的密钥对不存在,因为我在AWS控制台中删除了它。这只是AWS控制台中的UI问题,还是我误解了如何管理密钥?

2 个答案:

答案 0 :(得分:0)

我不确定您是否在谈论此问题,但如果您删除了私钥,则无法访问您的实例。

  

Amazon EC2不会保留您的私钥副本;因此,如果你   丢失私钥,没有办法恢复它。如果你输了   实例存储支持的实例的私钥,您无法访问   实例;你应该终止实例并启动另一个实例   使用新密钥对的实例。如果您丢失了私钥   EBS支持的Linux实例,您可以重新获得对您的实例的访问权限。对于   更多信息,请参阅如果丢失则连接到Linux实例   你的私钥。

https://docs.aws.amazon.com/en_us/AWSEC2/latest/UserGuide/ec2-key-pairs.html

答案 1 :(得分:0)

“Connect”UI中的命令是指在启动实例期间指定的密钥对的名称。该名称与您在实例的“描述”选项卡中看到的密钥对名称相匹配。这不能改变。即使您在AWS控制台中删除了密钥对,您启动的实例仍然与该密钥对相关联。

在我的情况下,ISP问题导致我的IP地址暂时更改,因此我的新IP地址不再与我的安全组中的IP地址匹配。在我最初的调试工作中,我采取了各种可能导致我的私钥不再工作的事情,因此当我更正安全组中的IP地址时,我仍然被锁定。 (然后我继续删除密钥对,但仍然在我的问题中解释的AWS UI中引用它。)

幸运的是,我的是一个由EBS支持的Linux实例,所以我能够恢复,就像这样:

  1. 创建我的实例的AMI。
  2. 根据我的AMI创建一个新实例。这使我不必重建整个服务器并重新部署我的应用程序。当您基于旧实例的AMI创建新实例时,这是您将新密钥与实例相关联的更改。 AWS UI使这一点足够清晰。
  3. 将我的弹性IP与旧实例分离。
  4. 将我的弹性IP与新实例相关联。
  5. 然后我有一个影响SSH访问的问题,其他人可能不会遇到:我本地的known_hosts文件中的RSA密钥现在很糟糕。当我尝试SSH到AWS时,我在终端中看到一个错误,该错误引用了我的known_hosts中的特定行,这是问题所在。这是错误消息的重要部分:

    Offending RSA Key in /some/path/to/known_hosts:3
    

    最后这个数字告诉你known_hosts中的哪一行是问题,在我的情况下我只是删除了那行,然后又能够再次SSH到AWS,我的新实例与旧实例的工作方式相同。 / p>