4个版本 (稳定)
2.0.2 | 2024年7月12日 |
---|---|
2.0.0 | 2024年4月12日 |
1.0.0 | 2023年12月22日 |
0.2.0 | 2023年3月15日 |
#555 in 网络编程
16KB
297 代码行
ansible-sshman
编写一个简单的yaml文件,让Ansible为您设置服务器的SSH访问。
要求
- Ansible
ansible.posix
集合(ansible-galaxy collection install ansible.posix
)
工作原理
读取一个yaml配置文件,该文件列出了用户和他们可以访问的主机。生成一个playbook并使用ansible-playbook
运行它或将其写入文件。该playbook为每个用户在其有权访问的主机上创建账户,并将他们列出的公钥添加到其授权列表中。此工具永远不会删除用户或其数据。对于未blocked
的用户,将创建账户。
角色
用户可以具有以下四种可能的角色之一
blocked
: 不能使用公钥认证登录。sudoer
: 可以使用sudo的正常用户。这些用户有锁定/禁用的密码。superuser
: UID为0的用户 - 等同于root。
详细信息
playbook的第一个play包含创建sshman-sudoer
组和授权此组成员使用root密码sudo的任务。
playbook中接下来将是为每个用户创建的play,他们在其有权访问的主机上创建账户(除非他们被blocked
- 这些用户将不会为他们创建账户)。
最后,为每个用户授权他们在其有权访问的主机上的相应密钥 - 或为blocked
用户移除所有密钥。
配置格式
- name: Username of user
pubkeys:
- Array of
- public keys
- the user may use to login.
access: Ansible group pattern matching hosts this user should have access to.
role: Controls the privileges a user has on the host. One of the roles listed above.
使用帮助
Tool for managing SSH access to machines with Ansible.
Usage: ansible-sshman --config <CONFIG> <COMMAND>
Commands:
run Generates and runs the playbook immediately
write Writes the playbook to a file
help Print this message or the help of the given subcommand(s)
Options:
-c, --config <CONFIG> Path to ssh config file
-h, --help Print help
-V, --version Print version
依赖关系
~4–14MB
~185K SLoC