create-ami 命令是否支持 EBS 支持实例的 sshkey?

Does create-ami command support sshkey of EBS backed instance?

AMI 由 AWS 提供

在下面的命令中,我们使用 SOME_OLD_AMI:

创建一个 ec2 实例

export EC2_INSTANCE_ID=$(aws ec2 run-instances --image-id ${SOME_OLD_AMI} --key-name ${SOMEKEY}

然后停止它:

aws ec2 stop-instances --instance-ids ${EC2_INSTANCE_ID} --region ${REGION}


现在,我们正在使用这个已停止的实例自定义 ami:

       aws ec2 create-image --instance-id ${EC2_INSTANCE_ID} --name ${SOME_NEW_AMI} --description "xyz"

我们可以使用私钥(SOMEKEY)ssh EC2 实例(使用SOME_NEW_AMI 启动)吗?因为 ssh 密钥已分配给 EC2_INSTANCE_ID.....

是的。

如果 AMI 由 AWS 提供,则实例上安装了一些软件,这些软件将获取 RunInstances() 期间指定的密钥并将其添加到 /home/ec2-user/.ssh/authorized_keys 文件中。然后,这允许您使用密钥对的私有部分登录。

如果此实例采用 AMI,则密钥对将保留在 authorized_keys 文件中。

接下来,如果使用该 AMI 启动新实例,则可以通过 RunInstances() 传递另一个密钥对,但旧密钥对仍将存在并可以使用。

所以:

  • 使用密钥对 1 启动的实例 1: 可以使用 Keypair 1
  • 连接
  • 从实例 1 创建的 AMI
  • 实例 2 从 AMI 启动,指定密钥对 2: 可以使用 Keypair 1Keypair 2 连接