使用 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 设置的一部分。