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


当前回答

我注意到,当由Elastic Beanstalk管理时,您可以更改活动的EC2密钥对。2 .在“Elastic Beanstalk > Configuration > Security”下的“EC2密钥对”下拉框中选择新密钥。你会看到这条消息询问你是否确定:

EC2KeyName:对选项EC2KeyName设置的更改将不会生效 立即。您现有的每个EC2实例都将被替换 届时,您的新设置将生效。

当我这样做时,我的实例已经终止了。然后开始,结束,再开始。显然,“替换”意味着终止并创建一个新实例。如果您已经修改了引导卷,那么首先创建一个AMI,然后在相同的Elastic Beanstalk > Configuration > Instances表单中指定这个AMI作为自定义AMI ID。这也会对替换EC2实例发出警告。

在修改了EC2密钥对和Custom AMI ID并看到有关这两者的警告之后,单击Save继续。

请记住,当重新创建实例时,IP地址会发生变化,因此您需要从EC2控制台检索一个新的IP地址,以便在通过SSH连接时使用。

其他回答

这是为他们谁有两个不同的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

我认为最简单的方法是:

创建现有实例的AMI映像。 使用AMI映像(由步骤1创建)和新的密钥对启动新的EC2实例。 使用新密钥登录到新的EC2实例。

我已经尝试了以下步骤,它在没有停止实例的情况下工作。我的需求是-因为我已经更改了客户端机器,旧的.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。

如果有人在这里,因为他们不能访问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秒的时间用那把钥匙登录。

如果您正在使用ElasticBeanstalk平台,您可以通过执行以下命令更改密钥:

弹性豆茎面板 配置 实例(右上方的齿轮) EC2密钥对

这将终止当前实例,并创建一个具有所选键/设置的新实例。