在Amazon EC2上,是否可以将密钥对重新分配给已经运行的实例?

时间:2010-02-02 03:21:22

标签: amazon-ec2

在Amazon EC2上,是否可以将密钥对重新分配给已经运行的实例?

我遇到特定密钥对的问题,我想知道是否有办法通过重新分配它来修复它。

由于

3 个答案:

答案 0 :(得分:10)

我们能够提出的最佳解决方案是create an AMI from the running instance并使用新密钥对从该AMI启动新实例。

我们推出的每个实例都基于我们为此以及其他许多原因维护的自定义AMI。

我很想知道是否有人有更好的方法。

答案 1 :(得分:1)

可能......根据我在几个实例中所做的事情来猜测:

  1. 使用ssh登录实例。如果那就是问题,你就会陷入困境
  2. SFTP来自新对的公钥并将其放入.ssh授权密钥
  3. 重新启动sshd
  4. 现在,尝试使用与您放置的公共密钥匹配的私钥进行访问。

    但是我担心,当AWS实施的那对事情变得糟糕时,你遇到的问题就是进入。没有帮助。

答案 2 :(得分:1)

如果您使用的是Linux服务器,则可以分离磁盘并将其安装在另一个实例上,以解决问题所在。

首先关闭问题服务器。记下设备名称(可能是/ dev / sda1)并分离磁盘。

然后使用新密钥对创建一个新实例(让我们称之为救援实例),并将您分离的磁盘作为附加磁盘附加(不要替换救援实例的磁盘)。

然后使用ssh登录到rescue实例并挂载磁盘。在新安装的磁盘主文件夹的主用户帐户中,有一个名为.ssh的文件夹,其文件为authorized_keys(例如/mnt/home/ubuntu/.ssh/authorized_keys)。

authorized_keys文件可以包含多个公钥,每个公钥都在其自己的行上。检查.ssh文件夹和父文件夹的权限,两者都应该只允许为所有者写入。我认为团体和世界需要阅读许可。 .ssh中的任何私钥都应具有权限600(用户只读和写入)。

它包含原始密钥对中的公钥。将其替换为新的公钥(或使用新的公钥添加新行),然后关闭救援实例,分离磁盘并使用原始设备名称(可能是/ dev / sda1)将其附加到问题实例。 / p>

启动,您应该可以使用新密钥对中的私钥登录。