l3d.auth
ansible 角色 auth
============================== Ansible 角色用于管理和部署管理员及非管理员用户的 SSH 密钥
预期用途
这个角色旨在管理 Linux 主机,主要集中在根据配置将正确的 SSH 公钥部署到相应的用户。其他角色则负责创建用户和组、配置 SSHD、部署点文件或安装一些有用的包。
建议用于管理 Linux 主机的角色列表:
- do1jlr.base 安装一些有用的包
- do1jlr.users 创建用户并管理 sudoers
- do1jlr.auth (此角色)
- do1jlr.sshd 配置 SSHD
- do1jlr.dotfiles 部署一些好看的点文件
重要信息:
列出的角色使用相同的变量来创建账户、管理管理员等。但这些角色必须按正确的顺序运行才能正常工作。例如,你不能为尚未创建的用户部署 SSH 公钥。
变量
admins
(默认[]
):
允许以root
身份登录的ssh
密钥列表。accounts
(默认[]
):
如果不存在,则将在此主机上创建的用户名列表。users
(默认{}
):
用户名映射到允许登录的ssh
密钥列表的字典。ssh_public_key_store
(默认ssh_public_keys
):
Ansible 可以找到公钥文件的目录路径。
如需额外变量,请查看 defaults/main.yml
!
要将 GitHub 上的额外 SSH 密钥添加到用户,请使用 github_users: {}
设置。
文件
此角色假定所有所需的 ssh
密钥的 公钥 部分可以在 ssh_public_key_store
目录内找到。文件名必须遵循命名规范:username_idalg.pub
,其中的 username
部分将被匹配。
示例
Alice 和 Bob 可以登录,并被允许在此主机上使用 sudo
命令成为 root
:
admins:
- alice
- bob
Alice、Bob 和 Eve 可以通过 SSH 登录到各自的用户账户:
users:
alice:
- alice
eve:
- eve@device1
- eve@device2
Eve 可以使用两个不同的 ssh
密钥进行登录,而 Alice 只能使用自己的一个 SSH 密钥。
files/ssh_public_keys/
包含以下文件:
alice_ed25519.pub
bob_ed25519.pub
eve@device1_ed25519.pub
eve@device2_ed25519.pub
Alice、Bob 和 Eve 希望成为此主机上的用户:
accounts:
- alice
- bob
- eve
为本地用户 L3D 添加 GitHub 用户 DO1JLR
的 SSH 密钥:
github_users:
l3d:
- do1jlr
生成 ed25519 SSH 密钥
ssh-keygen -t ed25519
Ansible Rolle to manage and deploy ssh keys of admin and non-admin users
ansible-galaxy install l3d.auth