amazon-web-services - create-ami 命令是否支持 EBS 支持的实例的 sshkey?
问题描述
AMI 由 AWS 提供
在下面的命令中,我们使用以下命令创建一个 ec2 实例SOME_OLD_AMI
:
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"
SOME_NEW_AMI
我们可以使用私钥( ) SSH EC2 实例(使用启动SOMEKEY
)吗?因为 ssh 密钥被分配给EC2_INSTANCE_ID
....
解决方案
是的。
如果 AMI 由 AWS 提供,则实例上安装了一些软件,该软件将获取期间指定的密钥RunInstances()
并将其添加到/home/ec2-user/.ssh/authorized_keys
文件中。然后,这允许您使用密钥对的私有部分登录。
如果使用此实例的 AMI,则密钥对将保留在authorized_keys
文件中。
接下来,如果使用该 AMI 启动新实例,则可以通过 传递另一个密钥对RunInstances()
,但旧密钥对仍然存在并且可以使用。
所以:
- 使用密钥对 1 启动的实例 1:可以使用
Keypair 1
- 从实例 1 创建的 AMI
- 从 AMI 启动的实例 2,指定密钥对 2:可以使用或
Keypair 1
Keypair 2
推荐阅读
- java - 我正在解决关于 GKG 问题的问题是给定一个字符串 S,反转字符串而不反转其单个单词。单词由点分隔
- python - 用更快/更有效的替代方法替换数据帧上的嵌套循环
- arrays - 我正在尝试 K&R C 语言书中的这个程序,但我遇到了问题
- c++ - 如何将此代码封装为c++中的函数?
- jquery - 使用 jquery 更改背景图像的部分 url
- jenkins - 构建配置和 jenkinsfile 中 token 的区别 triggers block
- qt - 按下时更改 SwipeDelegate 的颜色
- elasticsearch - Elasticsearch 在没有聚合桶的情况下计算不同的最小值
- python - 在 Python 中查找与正则表达式匹配的所有(包括重叠的)子字符串
- python - 将 django 项目中的数据加载到新的 postgres 数据库需要很长时间