我尝试使用amazon linux发行版创建一个ami图像,并使用自定义用户/传递。 我做了什么(manaualy):
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
)
/etc/init.d/ssh restart
admin
登录时 - 成功。但是在创建时
来自新创建的ami的新ami图像和午餐新实例,
通过用户admin
或ec2-user
- Permission denied
(publickey).
进行登录
我错过了什么!! 答案 0 :(得分:4)
问题是当您使用您创建的AMI启动实例时,EC2服务不知道您的更改。我使用Cloud-Init找到了解决该问题的解决方案,该内置在Amazon Linux和其他官方AMI上,完整的教程可以在这里找到:https://emagalha.es/blog/2018/01/21/customizing-the-default-user-of-an-ubuntu-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
,而不是创建新文件。我只是想创建一个新文件以使更改更加透明,无论如何,选择都是你的。