无法更改亚马逊 EC2 实例上分配的密钥对

无法更改亚马逊 EC2 实例上分配的密钥对

删除原始密钥对后,我似乎找不到将新创建的密钥对分配给 amazon ec2 实例的选项。我想“拒绝”第一个密钥对访问实例,我认为我成功了,但是,我无法用另一个密钥对重新分配实例。

答案1

当您在运行实例时指定密钥对时,大多数公共 AMI 会将该密钥对的公共 SSH 密钥复制到.ssh/authorized_keys主用户账户主目录中的文件中。此操作仅在首次启动时完成。

用户账户因 Linux 发行版和 AMI 发布者而异。一些常见的用户账户包括rootec2-userubuntu,因此默认文件可能是以下之一:

/root/.ssh/authorized_keys
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys

注意:上述行为不是由 EC2 强制执行的,而只是由大多数流行的公共 AMI 实施的事实标准。

如果您想阻止初始密钥对访问正在运行的实例,只需编辑该.ssh/authorized_keys文件,删除该公共 ssh 密钥条目,然后添加您想要访问的公共 ssh 密钥。

这是标准的 ssh 密钥管理,并非特定于 EC2。这是您服务器安全的关键,因此了解您正在做什么很重要。阅读有关 ssh 的内容以确保您安全地执行此操作。

警告!在终止用于编辑文件的现有 ssh 会话之前,请确保在单独的终端中使用新密钥测试 ssh!如果您破坏了文件,authorized_keys则可能会有无法连接到实例的风险。

确保添加民众ssh 密钥到文件authorized_keys,而不是私人的ssh 密钥!如果您将私有 ssh 密钥保存到,例如,,KEYPAIR.pem则以下命令将输出相应的公钥:

ssh-keygen -y -f KEYPAIR.pem

如果以上内容对您来说太复杂,那么使用指定的新密钥对启动新实例是可以的。无论如何,您都应该有一个程序来启动替换实例,因为您现有的实例可能随时失败。

在相关主题中,我建议使用您自己的 ssh 密钥,而不是让 Amazon 为您生成密钥对。这样可以让事情变得更容易。这是我就该主题撰写的一篇文章:

将个人 ssh 密钥上传到 Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

答案2

我不认为有办法为实例分配新的密钥对,但您可以从当前实例创建 AMI 映像,然后创建新 AMI 的实例,并在创建时为其分配新的密钥对。新实例启动并运行后,只需停止/终止旧实例即可。

新实例的 IP 地址与旧实例不同。如果这是个问题,您可能需要为旧实例分配一个弹性 IP,然后在您准备好后,将弹性 IP 重新分配给新实例。

据我了解,亚马逊仅在创建新实例时将您的密钥对的公钥插入到实例中。

答案3

第二种选择是更换 EC2 实例上丢失的密钥对,只要它是 EBS 支持的实例。以下链接可能会有所帮助:

更换丢失的密钥对

相关内容