在 EC2 实例上删除密钥对的后果

在 EC2 实例上删除密钥对的后果

如果通过 AWS 管理控制台删除与 EC2 实例关联的密钥对,会发生什么情况?这会永久阻止对该实例的访问吗?

答案1

如果您删除 AWS 存储的密钥对(例如,使用 AWS 控制台),您实际上只是删除了他们的 ssh 公钥副本。这不会阻止您继续使用本地存储的 ssh 私钥 ssh 进入现有实例,因为您的实例将继续在 .ssh/authorized_keys 中拥有公钥副本。它只是阻止您使用相同的密钥对创建新实例。

在相关问题中(以防人们最终在这里寻找这个答案)...

如果您删除 ssh 私钥的本地副本,则如果这是 .ssh/authorized_keys 文件中存储的唯一公钥,您将无法通过 ssh 进入实例。但是,您仍然可以按照我在本文中概述的步骤访问该实例:修复 EC2 实例的根 EBS 卷上的文件

  1. 停止(不是终止)EBS 启动实例
  2. 将 EBS 启动卷移至其他正在运行的实例
  3. 修复文件(例如,.ssh/authorized_keys)
  4. 将 EBS 启动卷移回原始实例
  5. 启动实例

此过程仅适用于 EBS 启动实例,并且是我建议您运行 EBS 启动实例的原因有很多

答案2

您将能够使用已删除的密钥对的私钥登录实例,直到终止实例为止。由于您将无法使用该密钥对启动新实例,因此您应该尽快删除旧公钥并生成新密钥对。

我建议你为你的实例(使用 Chef、puppet、cfengine 等)配置自己的 SSH 密钥(针对每个用户),并仅将 EC2 用作最终资源。这样可以提高安全性并简化对登录实例的用户的管理和控制。

相关内容