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 图像和午餐新实例, 通过用户登录 adminec2-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

指导我将黄金映像更新到我现有的AMI

删除了自定义 Amazon Beanstalk AMI id

运行 AWS Deep Learning Base AMI (Amazon Linux 2) 时,如何在 Elastic Beanstalk 中设置 WSGI?

创建 AMI 映像作为 cloudformation 堆栈的一部分

如何解决 amazon linux ami 中的 libpcre.so.1()(64bit) 依赖关系