如何在AWS管理控制台中更改ec2实例的密钥对?我可以停止实例,我可以创建新的密钥对,但我没有看到任何链接来修改实例的密钥对。
当前回答
这是为他们谁有两个不同的pem文件,并出于任何安全目的想要丢弃其中一个。假设我们想要丢弃1。pem
连接到服务器2,从~/.ssh/authorized_keys中复制ssh密钥 在另一个终端上连接服务器1,并将密钥粘贴到~/.ssh/authorized_keys中。现在您将有两个公共ssh密钥 现在,为了增强自信心,尝试使用2.pem连接服务器1。您将能够将服务器1与这两个1连接。Pem和2.pem 现在,注释1。Pem SSH,使用SSH -i连接。pem user@server1
其他回答
只有当您可以访问想要更改/添加密钥的实例时,这才有效。 您可以创建新的密钥对。或者,如果您已经拥有密钥对,那么您可以将新密钥对的公钥粘贴到实例上的authorized_keys文件中。
vim . ssh / authorized_keys
现在您可以使用该对的私钥并登录。
希望这能有所帮助。
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秒的时间用那把钥匙登录。
这个答案是有用的情况下,您不再有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文件
就是这样。
如果您无法登录VM并删除了ssh密钥,您也可以使用以下步骤更改ec2的密钥对。 一步一步来 1)停止你的ec2实例。 2)对虚拟机和存储进行快照。 3)创建一个新的虚拟机,同时创建它选择您的快照,并从您的快照创建虚拟机。 4)在创建虚拟机时下载您的密码对。 5)一旦你的虚拟机UP,你可以ssh一个新的密钥对,你的数据也会回来。
推荐文章
- 警告:未受保护的私钥文件!当尝试SSH到Amazon EC2实例时
- 如何设置ssh超时时间?
- 如何在SSH上使用Sublime
- 使用boto3连接CloudFront时,如何选择AWS配置文件
- 使用Git GUI或SSH -keygen的SSH私钥权限太开放
- 在gitlab上被拒绝许可(公钥)
- 使用脚本自动输入SSH密码
- 在亚马逊云服务器上设置FTP
- 使用scp将文件复制到Amazon EC2实例?
- 无法将图像推送到Amazon ECR -由于“没有基本的身份验证凭据”而失败
- 如何测试AWS命令行工具的凭据
- 在Linux中是否有办法继续中断的scp(安全拷贝)命令进程?
- 为什么SSH远程命令得到的环境变量比手动运行时少?
- 将Keypair添加到现有的EC2实例中
- 如何解决“sign_and_send_pubkey:签名失败:代理拒绝操作”?