代码之家  ›  专栏  ›  技术社区  ›  arnoldbird

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

  •  -1
  • arnoldbird  · 技术社区  · 7 年前

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

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

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

    2 回复  |  直到 7 年前
        1
  •  0
  •   Humberto de Carvalho    7 年前

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

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

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

        2
  •  0
  •   arnoldbird    7 年前

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

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

    幸运的是,我的是一个EBS支持的Linux实例,所以我能够恢复,如下所示:

    1. 创建我的实例的AMI。
    2. 基于我的AMI创建一个新实例。这使我不必重建整个服务器并重新部署应用程序。当您基于旧实例的AMI创建新实例时,这是您将新密钥与实例关联的更改。AWS UI已经足够清楚地说明了这一点。
    3. 将我的弹性IP与旧实例分离。
    4. 将我的弹性IP与新实例关联。

    然后,我还有一个影响SSH访问的问题,其他人可能不会遇到这个问题:我的本地已知_hosts文件中的RSA密钥现在已损坏。当我尝试SSH到AWS时,我在终端中看到一个错误,该错误引用了已知的\u主机中的特定行,这就是问题所在。这是错误消息的重要部分:

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

    最后的数字告诉您known\u hosts中的哪一行是问题所在,在我的例子中,我刚刚删除了这一行,然后又可以通过SSH连接到AWS,我的新实例与旧实例的工作方式相同。