l3d.sshd

OpenSSH 服务器

==============

这是一个用于配置 OpenSSH 服务器 SSHD 的 Ansible 角色。这个角色的主要目标是管理 sshd.conf 文件,以及在配置路径中部署定义的 ssh 主机密钥。

小提示


使用椭圆曲线加密生成 ssh 密钥:

ssh-keygen -t ed25519

此角色的默认值将只允许 ed25519 密钥。但是,如果您愿意,可以显然更改它。

预期用途


此角色旨在管理具有以下角色的 Linux 主机。它主要关注 sshd 的良好配置,并可以定义哪些用户被允许通过 ssh 连接,哪些 ssh 密钥类型被允许使用。其他角色可以分发 ssh 公钥,创建用户并配置 sudo 权限,推出 dotfiles 或安装一些有用的包。

建议管理 Linux 主机的角色列表:

注意事项:


列表中的角色使用相同的变量来创建账户、管理员等。但是,角色必须按正确顺序运行才能正常工作。例如,您不能为未创建的用户部署 ssh 公钥。

一些变量解释


记住: 请查看 defaults/main.yml 以了解所有可能的变量。

  • SSH 端口
    OpenSSH 端口由变量 sshd__port: 22 定义。如果需要,请更改它。

  • 允许的用户和组
    默认可以登录的用户来自 users: {} 列表。
    相同的 users: {} 变量在其他推荐的 ssh 角色中使用。
    例如,允许名为 l3dottojo 的用户和组登录:

users:
  l3d:
    - l3d
  ottojo:
   - ottojo@uni
   - ottojo@home
  • 通过密码 SSH 登录
    密码身份验证通过 sshd__password_authentication: false 设置为 false。这将不允许您使用密码通过 SSH 登录。

  • 管理 SSH 密钥类型
    默认情况下,该角色配置允许登录的 ssh 密钥类型。如果您不想定义它,请更改变量 sshd__manage_key_types: true

  • 定义允许的 ssh 密钥类型
    允许的 SSH 密钥类型通过此列表定义。其中一些被注释掉了。
    请注意,默认情况下只允许 ed25519 密钥。如果您使用 rsa 密钥,请牢记这一点。

  sshd__key_types:
  - 'ed25519'
  # - 'rsa'
  # - 'ecdsa'
  # - 'dsa' # (请勿使用!)
  • 高级 SSH 算法设置
    您也可以在此定义使用的密钥和 Kex 算法。有关默认值和一些示例,请查看 defaults/main.yml 中的变量 sshd__key_algorithmussshd__kex_algorithmus。您可以通过将 sshd__manage_key_algorithmussshd__manage_kex_algorithmus 设置为 false 来禁用它们。

  • 启用新 SSH 功能
    如果您知道正在使用的 ssh 版本 >8,可以选择使用变量 sshd__version_is_above_eight 设置为 true/false 来定义它。

文件


此角色的主要任务是配置 sshd.conf 文件。

参考


测试


此角色经过一些 lint 测试。遗憾的是,我不知道如何在 docker 容器中运行此角色,因为涉及到 systemd......如果您有改进测试的想法,请给我发消息,打开问题或拉取请求。如果您想了解更多关于我们的测试的信息,请查看 GitHub 市场。

测试状态 GitHub 市场
Galaxy release 发布 Ansible 角色到 galaxy
Yamllint GitHub Actions yamllint-github-action
Ansible Lint check ansible-lint action
关于项目

Manage your SSH Server - and deploy a good sshd configuration

安装
ansible-galaxy install l3d.sshd
许可证
mit
下载
60.2k
拥有者
Ansible roles provide a framework for fully independent, or interdependent collections of variables,tasks,files,templates &modules. Here we maintain some. enjoy