Ansible 使用密钥认证创建用户

Ansible 使用密钥认证创建用户

使用 SSH 密码认证创建用户时,似乎没有问题。但是,使用 SSH 密钥认证创建用户时,我不确定我是否理解工作流程。

我想在其他 Linux 服务器上创建一个使用 SSH 密钥身份验证的用户帐户。在我的管理框中,我可以使用 ansible 在许多其他使用密码身份验证的 Linux 服务器上为这些用户配置这些用户,

我想要 SSH 密钥认证。

如何在多台服务器上为新帐户配置它自己的用户 SSH 密钥?

我看来,您使用 ansible 有以下工作流程;

  • 在所有服务器(包括管理系统)中启用 sshd_config 中的 PasswordAuthenication。
  • 创建帐户
  • 让新用户登录(管理框),并创建自己的 SSH 密钥。
  • 新用户将公钥提交给配置管理员。
  • 配置管理员将密钥复制到所有服务器,
  • 然后在 sshd_config 中禁用 PasswordAuthenicaiton

这听起来对吗,或者有更好的方法吗?

感谢您的帮助。

答案1

您需要使用授权密钥模块以及。使用特定 ssh 密钥将用户添加到服务器的流程应该是:

---

- name: Ensure user is present.
  user:
    name: user
    state: present

- name: Set authorized key took from file
  authorized_key:
    user: user
    state: present
    key: id_rsa.pub

禁用密码验证应该是初始 Ansible 设置的一部分。

相关内容