#ssh-key #ansible #ssh #config-file #security #yaml-config #networking

app ansible-sshman

使用Ansible管理机器SSH访问的工具

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 网络编程

GPL-3.0-or-later

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