更改EC2实例的密钥对
更改EC2实例的密钥对
我该如何在AWS管理控制台上更改我的ec2实例的密钥对?我可以停止实例,可以创建新的密钥对,但我没有看到任何链接可以修改实例的密钥对。
admin 更改状态以发布 2023年5月23日
一旦实例已经启动,就无法在元数据级别上更改与实例关联的密钥对,但可以更改用于连接到实例的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
这仅适用于您运行的新实例。
这个答案对于那些无法再次访问现有服务器的SSH非常有用(即您丢失了私钥)。
如果您仍然可以访问SSH,请使用以下答案之一。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
以下是我根据Eric Hammond的博客文章所做的:
- 停止正在运行的EC2实例
- 分离其
/dev/xvda1
卷(我们称其为卷A) - 请参阅此处 - 使用我的新密钥对启动新的t1.micro EC2实例。确保您在相同的子网中创建它,否则您将不得不终止该实例并重新创建它。 - 请参阅此处
- 将卷A作为
/dev/xvdf
(或/dev/sdf
)附加到新的微型实例 - 使用SSH登录到新的微型实例并将卷A挂载到
/mnt/tmp
$ sudo mkdir /mnt/tmp; sudo mount /dev/xvdf1 /mnt/tmp
- 将
~/.ssh/authorized_keys
复制到/mnt/tmp/home/ubuntu/.ssh/authorized_keys
- 注销
- 终止微型实例
- 将卷A从其分离
- 将卷A重新附加到主实例作为
/dev/xvda
- 启动主实例
- 像以前一样使用您的新
.pem
文件登录
就是这样。