Amazon linux:创建ami图像时更改默认的ec2-user

时间:2017-12-04 20:50:56

标签: linux amazon-ec2 amazon

我尝试使用amazon linux发行版创建一个ami图像,并使用自定义用户/传递。 我做了什么(manaualy):

  • 使用amazon linux ami午餐亚马逊实例
  • 使用用户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用户/通行证登录
  • 重新启动ssh服务:/etc/init.d/ssh restart
  • 当我尝试使用用户admin登录时 - 成功。但是在创建时 来自新创建的ami的新ami图像和午餐新实例, 通过用户adminec2-user - Permission denied (publickey).进行登录 我错过了什么!!

1 个答案:

答案 0 :(得分:4)

问题是当您使用您创建的AMI启动实例时,EC2服务不知道您的更改。我使用Cloud-Init找到了解决该问题的解决方案,该内置在Amazon Linux和其他官方AMI上,完整的教程可以在这里找到:https://emagalha.es/blog/2018/01/21/customizing-the-default-user-of-an-ubuntu-ami/

简而言之,您需要做的就是:

  1. 使用Amazon Linux AMI启动实例,在用户数据字段中放置以下行:
  2. #cloud-config
    system_info:
      default_user:
        name: admin
    
    1. 使用 admin 用户连接到该实例,并在/etc/cloud/cloud.cfg.d/defaults.cfg创建一个文件,其中包含用于启动实例的用户数据文件的相同内容。

    2. 关闭实例并创建AMI

    3. 享受!

    4. 您还可以使用新用户名更新实例内的/etc/cloud/cloud.cfg.d/00_defaults.cfg,而不是创建新文件。我只是想创建一个新文件以使更改更加透明,无论如何,选择都是你的。