Amazon linux:创建 ami 映像时更改默认 ec2-user
Posted
技术标签:
【中文标题】Amazon linux:创建 ami 映像时更改默认 ec2-user【英文标题】:Amazon linux: Change default ec2-user when creating an ami image 【发布时间】:2018-05-18 09:55:28 【问题描述】:我正在尝试使用带有自定义用户/密码的 amazon linux 发行版创建 ami 映像。 我做了什么(手动):
使用 amazon linux ami 午餐 amazon 实例 使用用户ec2-user
登录
创建一个新用户,例如admin
更改用户admin
的密码
将用户admin
添加到车轮组:usermod -aG wheel admin
将用户 admin
添加到 sudoers 文件:sudo echo "admin ALL=NOPASSWD:ALL " > /etc/sudoers.d/admin
在/etc/sshd/sshd_config
(PermitRootLogin yes
)
允许ssh用户/pass登录
重启ssh服务:/etc/init.d/ssh restart
当我尝试使用用户 admin
登录时 - 成功。但是当创建一个
来自新创建的 ami 的新 ami 图像和午餐新实例,
通过用户登录 admin
或 ec2-user
- Permission denied
(publickey).
我错过了什么!
【问题讨论】:
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。 也许这会对你有所帮助forums.aws.amazon.com/thread.jspa?messageID=238129 【参考方案1】:问题是当您使用您创建的 AMI 启动实例时,EC2 服务不知道您的更改。我使用内置在 Amazon Linux 和其他官方 AMI 上的 Cloud-Init 找到了该问题的解决方案,完整的教程可以在这里找到:https://emagalha.es/blog/2018/01/21/customizing-the-default-user-of-an-ubuntu-ami/
简而言之,这是您需要做的:
-
使用 Amazon Linux AMI 启动实例,在用户数据字段中放置以下行:
#cloud-config
system_info:
default_user:
name: admin
使用 admin 用户连接到实例,并在 /etc/cloud/cloud.cfg.d/defaults.cfg
创建一个文件,该文件与您用于启动实例的用户数据文件的内容相同。
关闭实例并创建 AMI
享受吧!
您还可以使用新用户名更新实例内的/etc/cloud/cloud.cfg.d/00_defaults.cfg
,而不是创建新文件。我只是喜欢创建一个新文件以使更改更加透明,无论如何,选择权在你。
【讨论】:
以上是关于Amazon linux:创建 ami 映像时更改默认 ec2-user的主要内容,如果未能解决你的问题,请参考以下文章
提供最新 amazon-ecs-optimized image 的 ami-id 的脚本或 api
删除了自定义 Amazon Beanstalk AMI id
运行 AWS Deep Learning Base AMI (Amazon Linux 2) 时,如何在 Elastic Beanstalk 中设置 WSGI?