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