【问题标题】:How to replace /root/.ssh/authorized_keys with cloud-config on EC2?如何在 EC2 上用 cloud-config 替换 /root/.ssh/authorized_keys?
【发布时间】:2023-04-06 05:23:02
【问题描述】:

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

【问题讨论】:

  • 您的问题不清楚。您可以发布您的脚本的 sn-p 吗?

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


【解决方案1】:

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

【讨论】:

  • 我没有机会亲自测试这个,但将其标记为已接受,因为它回答了问题。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 2013-06-24
    • 2019-07-01
    • 1970-01-01
    • 2016-02-21
    • 2022-01-14
    相关资源
    最近更新 更多