l3d.sshd
OpenSSH 服务器
==============
这是一个用于配置 OpenSSH 服务器 SSHD
的 Ansible 角色。这个角色的主要目标是管理 sshd.conf 文件,以及在配置路径中部署定义的 ssh 主机密钥。
小提示
使用椭圆曲线加密生成 ssh 密钥:
ssh-keygen -t ed25519
此角色的默认值将只允许 ed25519 密钥。但是,如果您愿意,可以显然更改它。
预期用途
此角色旨在管理具有以下角色的 Linux 主机。它主要关注 sshd 的良好配置,并可以定义哪些用户被允许通过 ssh 连接,哪些 ssh 密钥类型被允许使用。其他角色可以分发 ssh 公钥,创建用户并配置 sudo 权限,推出 dotfiles 或安装一些有用的包。
建议管理 Linux 主机的角色列表:
- do1jlr.base 安装一些有用的包
- do1jlr.users 创建用户和管理 sudoers
- do1jlr.auth 部署 ssh 公钥
- do1jlr.sshd (这个角色)
- do1jlr.dotfiles 部署一些漂亮的 dotfiles
注意事项:
列表中的角色使用相同的变量来创建账户、管理员等。但是,角色必须按正确顺序运行才能正常工作。例如,您不能为未创建的用户部署 ssh 公钥。
一些变量解释
记住: 请查看 defaults/main.yml
以了解所有可能的变量。
SSH 端口
OpenSSH 端口由变量sshd__port: 22
定义。如果需要,请更改它。允许的用户和组
默认可以登录的用户来自users: {}
列表。
相同的users: {}
变量在其他推荐的 ssh 角色中使用。
例如,允许名为l3d
和ottojo
的用户和组登录:
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_algorithmus
和sshd__kex_algorithmus
。您可以通过将sshd__manage_key_algorithmus
和sshd__manage_kex_algorithmus
设置为false
来禁用它们。启用新 SSH 功能
如果您知道正在使用的 ssh 版本>8
,可以选择使用变量sshd__version_is_above_eight
设置为true/false
来定义它。
文件
此角色的主要任务是配置 sshd.conf
文件。
参考
测试
此角色经过一些 lint 测试。遗憾的是,我不知道如何在 docker 容器中运行此角色,因为涉及到 systemd......如果您有改进测试的想法,请给我发消息,打开问题或拉取请求。如果您想了解更多关于我们的测试的信息,请查看 GitHub 市场。
测试状态 | GitHub 市场 |
---|---|
发布 Ansible 角色到 galaxy | |
yamllint-github-action | |
ansible-lint action |
ansible-galaxy install l3d.sshd