如何在 EC2 上用 cloud-config 替换 /root/.ssh/authorized_keys?
How to replace /root/.ssh/authorized_keys with cloud-config on EC2?
部署新的 EC2 实例时,您必须 select SSH 密钥才能访问机器。我想 仅 使用实例的用户数据中指定的授权密钥。这可能吗?我试过同时使用 ssh-authorized-keys
:
users:
- name: user
ssh-authorized-keys:
- ssh-rsa [...] my_key
和write_files
:
write_files:
- content: |
ssh-rsa [...] my_key
path: /home/user/.ssh/authorized_keys
,但在这两种情况下,原始密钥都会自动添加到 /root/.ssh/authorized_keys
。我是否需要禁用 root
登录才能永久禁用此密钥?
如果您从 AWS Web 控制台启动实例,您可以在最后一步选择不使用密钥启动。因此,只会将您在 cloud-config 中指定的 public 键注入到实例中。
用户ec2-user|centos|ubuntu...就是定义的default_user通过 /etc/cloud/*.cfg
这是跳过此 default_user 行为并通过用户数据设置另一个用户的方法:
#cloud-config
system_info:
default_user: ~
users:
- name: myname
sudo: ALL=(ALL) NOPASSWD:ALL
ssh-authorized-keys:
- ssh-rsa AAAA[...]O1 myname@myhost
请注意,在 AWS console/api 上选择的密钥对将被忽略。
部署新的 EC2 实例时,您必须 select SSH 密钥才能访问机器。我想 仅 使用实例的用户数据中指定的授权密钥。这可能吗?我试过同时使用 ssh-authorized-keys
:
users:
- name: user
ssh-authorized-keys:
- ssh-rsa [...] my_key
和write_files
:
write_files:
- content: |
ssh-rsa [...] my_key
path: /home/user/.ssh/authorized_keys
,但在这两种情况下,原始密钥都会自动添加到 /root/.ssh/authorized_keys
。我是否需要禁用 root
登录才能永久禁用此密钥?
如果您从 AWS Web 控制台启动实例,您可以在最后一步选择不使用密钥启动。因此,只会将您在 cloud-config 中指定的 public 键注入到实例中。
用户ec2-user|centos|ubuntu...就是定义的default_user通过 /etc/cloud/*.cfg
这是跳过此 default_user 行为并通过用户数据设置另一个用户的方法:
#cloud-config
system_info:
default_user: ~
users:
- name: myname
sudo: ALL=(ALL) NOPASSWD:ALL
ssh-authorized-keys:
- ssh-rsa AAAA[...]O1 myname@myhost
请注意,在 AWS console/api 上选择的密钥对将被忽略。