更改EC2实例的密钥对

22 浏览
0 Comments

更改EC2实例的密钥对

我该如何在AWS管理控制台上更改我的ec2实例的密钥对?我可以停止实例,可以创建新的密钥对,但我没有看到任何链接可以修改实例的密钥对。

admin 更改状态以发布 2023年5月23日
0
0 Comments

一旦实例已经启动,就无法在元数据级别上更改与实例关联的密钥对,但可以更改用于连接到实例的ssh密钥。

大多数AMI都有一个启动过程,它会下载公共的ssh密钥并将其安装在.ssh/authorized_keys文件中,以便您可以使用相应的私有ssh密钥作为该用户ssh登录。

如果您想更改访问实例所使用的ssh密钥,您需要编辑实例本身上的authorized_keys文件并将其转换为您的新ssh公钥。

authorized_keys文件位于要登录的用户的主目录下的.ssh子目录中。根据您正在运行的AMI,它可能位于以下之一:

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

在编辑authorized_keys文件后,总是使用不同的终端确认您能够ssh登录到实例,然后再断开您用于编辑文件的会话。您不想犯错误并完全锁定自己的实例。

在考虑EC2上的ssh密钥对时,我建议上传您自己的个人ssh公钥而不是让亚马逊为您生成密钥对。

这是我写的一篇文章:

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

这仅适用于您运行的新实例。

0
0 Comments

这个答案对于那些无法再次访问现有服务器的SSH非常有用(即您丢失了私钥)。

如果您仍然可以访问SSH,请使用以下答案之一。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

以下是我根据Eric Hammond的博客文章所做的:

  1. 停止正在运行的EC2实例
  2. 分离其/dev/xvda1卷(我们称其为卷A) - 请参阅此处
  3. 使用我的新密钥对启动新的t1.micro EC2实例。确保您在相同的子网中创建它,否则您将不得不终止该实例并重新创建它。 - 请参阅此处
  4. 将卷A作为/dev/xvdf(或/dev/sdf)附加到新的微型实例
  5. 使用SSH登录到新的微型实例并将卷A挂载到/mnt/tmp

$ sudo mkdir /mnt/tmp; sudo mount /dev/xvdf1 /mnt/tmp

  1. ~/.ssh/authorized_keys复制到/mnt/tmp/home/ubuntu/.ssh/authorized_keys
  2. 注销
  3. 终止微型实例
  4. 将卷A从其分离
  5. 将卷A重新附加到主实例作为/dev/xvda
  6. 启动主实例
  7. 像以前一样使用您的新.pem文件登录

就是这样。

0