如何在EC2上用cloud-config替换/root/.ssh/authorized_keys?

时间:2015-12-08 13:14:45

标签: amazon-web-services amazon-ec2 cloud-init

部署新的EC2实例时,您必须选择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登录才能永久禁用此密钥?

2 个答案:

答案 0 :(得分:2)

用户 ec2-user | centos | ubuntu ...是/ etc / cloud / *定义的 default_user .cfg

这是如何跳过此default_user行为,并通过user-data设置另一个用户:

#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上选择的密钥对将被忽略。

答案 1 :(得分:0)

如果要从AWS Web控制台启动实例,则可以选择在最后一步中不使用密钥启动。因此,只有您在cloud-config中指定的公钥才会被注入实例。

Choosing key pair