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


当前回答

Yegor256的回答对我来说很有用,但我想我只是添加一些评论来帮助那些不太擅长挂载驱动器的人(比如我!):

Amazon允许您在附加卷时选择要如何命名它。您必须使用从/dev/sda到/dev/sdp范围内的名称 新版本的Ubuntu会将你放入的内容重命名为/dev/xvd(x)或类似的名称。

所以对我来说,我选择了/dev/sdp作为AWS中的挂载名称,然后我登录到服务器,发现Ubuntu已经将我的卷重命名为/dev/xvdp1)。然后我必须安装驱动器-对我来说,我必须这样做:

mount -t ext4 xvdp1 /mnt/tmp

在跳过所有这些步骤之后,我可以在/mnt/tmp目录下访问我的文件

其他回答

如果有人在这里,因为他们不能访问EC2实例,因为他们没有密钥对,但他们有IAM访问,你可以运行以下命令,允许临时访问(60秒)你的EC2实例使用你已经拥有的密钥,只要你知道用户名(通常是'ubuntu' ubuntu实例或' EC2 -user'亚马逊linux实例):

aws ec2-instance-connect send-ssh-public-key --region ${your-aws-region} --instance-id ${your-instance-id} --availability-zone ${your-instance-az} --instance-os-user ${username} --ssh-public-key file://path/to/public/key 

(如果您的~/。Aws /凭据文件,您还可以通过在此命令中添加'——profile your-profile'标志来指定)

如果成功,输出将如下所示:

{
"RequestId": "3537268d-c161-41bb-a4ac-977b79b2bdc0",
"Success": true
}

然后你有60秒的时间用那把钥匙登录。

下载AWS pem后执行此命令。

ssh-keygen -f YOURKEY.pem -y

然后将输出转储到authorized_keys中。

或将pem文件复制到AWS实例并执行以下命令

chmod 600 YOURKEY.pem

然后

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_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。microec2实例,使用我的新密钥对。确保在相同的子网中创建它,否则将不得不终止实例并重新创建它。-请看这里 将卷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文件

就是这样。

最简单的解决方法是复制的内容

~/.ssh/id_rsa.pub

到您的AWS实例的authorized_keys at

~/.ssh/authorized_keys

这将允许您ssh进入EC2实例,而无需为ssh命令指定pem文件。测试连接后,可以删除所有其他键。

如果你需要创建一个新的密钥来与其他人共享,你可以通过:

ssh-keygen -t rsa

这将创建私钥。Pem文件,你可以通过以下方式获取该文件的公钥:

ssh-keygen -f private_key.pem -y > public_key.pub

任何拥有private_key的人。Pem能够连接到

ssh user@host.com -i private_key.pem

我已经尝试了以下步骤,它在没有停止实例的情况下工作。我的需求是-因为我已经更改了客户端机器,旧的.pem文件不允许我登录到ec2实例。

使用旧机器上的旧.pem文件登录到ec2实例。~ / . ssh / authorized_keys开放

你会在那个文件里看到你的旧钥匙。

ssh-keygen -f YOUR_PEM_FILE. shpem - y 它会生成一个密钥。将键附加到~/。Ssh /authorized_keys在步骤#1中打开。无需删除旧密钥。 从AWS控制台创建一个新的密钥对。把它存储在你的新机器里。将其重命名为旧的pem文件-原因是旧的pem文件仍然与AWS中的ec2实例相关联。

全部完成。

我可以从我的新客户端机器上登录到AWS ec2。