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


当前回答

我认为最简单的方法是:

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

其他回答

这个答案是有用的情况下,您不再有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文件

就是这样。

我的问题是,我尝试使用IP而不是公共DNS。然后我尝试了公共DNS和它的解决

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

这个问题有两种情况:-

1)你没有权限访问。pem文件,这就是为什么你想创建一个新的文件。

2)您拥有.pem文件的访问权限,但您只是想更改或创建一个新的.pem文件,以解决某些漏洞或安全问题。

所以如果你的钥匙丢了,你可以向上滚动查看其他答案。但是,如果您只是为了安全目的而更改您的.pem文件,请遵循以下步骤:-

1)进入AWS控制台登录,从密钥对创建一个新的.pem文件 那边的区域。它会自动下载。pem文件到 你的电脑 2)修改权限到400如果你使用Linux/ubuntu点击下面 命令

chmod 400 yournewfile.pem

3)在本地生成新下载文件的RSA

ssh-keygen -f yournewfile.pem -y

4)从这里复制RSA代码 5)现在SSH到您的实例通过之前的。pem文件

ssh -i oldpemfileName.pem username@ipaddress

sudo vim  ~/.ssh/authorized_keys

6)给1 - 2行空间,并粘贴复制的新文件的RSA 然后保存文件 7)现在您的新.pem文件与正在运行的实例链接 8)如果你想禁用之前的.pem文件访问,那么只需编辑即可 的

sudo vim ~/.ssh/authorized_keys

文件,并从这里删除或更改之前的RSA。

注意:-小心删除,以便新创建的RSA不会被更改。

通过这种方式,您可以将新的.pem文件与正在运行的实例更改/连接。

出于安全考虑,您可以撤销对先前生成的.pem文件的访问权。

希望对大家有所帮助!

步骤:

创建新密钥,例如使用AWS控制台,PuTTY密钥生成器,或ssh-keygen 停止实例 设置实例用户数据以将公钥推送到服务器 启动实例

#cloud-config
cloud_final_modules:
- [once]
bootcmd:
 - echo 'ssh-rsa AAAAB3Nz...' > /home/USERNAME/.ssh/authorized_keys

其中USERNAME是机器的预期用户名。可以从AWS获得默认用户名列表。

来自AWS的分步说明