2

在部署新的 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登录才能永久禁用此密钥?

4

2 回答 2

2

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

这是如何跳过这个 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 控制台/api 上选择的密钥对将被忽略。

于 2017-09-01T07:29:27.133 回答
0

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

选择密钥对

于 2015-12-18T03:59:20.827 回答