silverlogic.sshd
OpenSSH 服务器
该角色用于配置 OpenSSH 守护进程。它:
- 默认情况下,使用操作系统的常规默认配置来配置 SSH 守护进程。
- 可以在各种类 UNIX 的发行版上工作。
- 可以通过字典或简单变量进行配置。
- 支持匹配设置。
- 支持所有 sshd_config 选项,模板是程序生成的。 (请参见 meta/make_option_list)
- 在重新加载 sshd 之前测试 sshd_config。
警告 错误配置该角色可能会锁定您无法访问服务器!请在生产环境使用前测试配置及其与用户配置的相互作用。
警告 Digital Ocean 允许在 Debian 和 Ubuntu 上通过 SSH 使用带密码的 root 账号。这不是该模块默认的设置 - 它会将 PermitRootLogin without-password
设置为允许通过 SSH 密钥访问,但不允许简单密码访问。如果您需要此功能,请确保在这些主机上设置 ssh_PermitRootLogin yes
。
要求
经过测试的系统:
- Ubuntu precise, trusty
- Debian wheezy, jessie
- FreeBSD 10.1
- EL 6, 7 衍生发行版
- Fedora 22, 23
- OpenBSD 6.0
它可能在其他版本上也能正常工作,如果有适用的 vars/ 文件,欢迎提供更多直接支持。
角色变量
未配置时,该角色将提供一个与操作系统默认值匹配的 sshd_config,去掉注释,顺序不同。
- sshd_skip_defaults
如果设置为 True,将不应用默认值。这意味着您必须通过 sshd 字典或 sshd_Key 变量拥有完整的配置默认值。默认值为 False。
- sshd_manage_service
如果设置为 False,服务/守护进程将不会被修改,即不会尝试在启动时启用、启动或重新加载该服务。默认值为 True,除非在 Docker 容器内运行(假设在构建阶段使用了 ansible)。
- sshd_allow_reload
如果设置为 False,修改后不会重新加载 sshd。这可以帮助故障排除。如果您想应用更改的配置,则需要手动重新加载 sshd。默认与 sshd_manage_service
的值相同。
- sshd_authorized_principals_file
授权主体文件存储的路径。仅在 sshd_authorized_principals
也被设置时使用。
可以用于设置您的 sshd_AuthorizedPrincipalsFile 配置。例如 sshd_AuthorizedPrincipalsFile: '{{ sshd_authorized_principals_file }}'
- sshd_authorized_principals
一个字典,列出哪些主体可以登录到哪些用户。字典的每个键是用户的名称。字典的值是允许登录到该用户的主体列表。例如:
sshd_authorized_principals:
root:
- root-everywhere
- bobby
- ryan
- sshd_trusted_user_ca_keys_file
受信任用户 CA 密钥文件存储的路径。仅在 sshd_trusted_user_ca_keys
也被设置时使用。
可以用于设置您的 sshd_TrustedUserCAKeys 配置。例如 sshd_TrustedUserCAKeys: '{{ sshd_trusted_user_ca_keys }}'
- sshd_trusted_user_ca_keys
一个受信任的 CA 公钥列表。
- sshd
包含配置的字典。例如:
sshd:
Compression: delayed
ListenAddress:
- 0.0.0.0
- ssh_...
可以使用简单变量而不是字典。简单值覆盖字典值。例如:
sshd_Compression: off
在所有情况下,布尔值将被正确渲染为 sshd 配置中的 yes 和 no。列表可以用于多行配置项。例如:
sshd_ListenAddress:
- 0.0.0.0
- '::'
渲染为:
ListenAddress 0.0.0.0
ListenAddress ::
- sshd_match
一个匹配部分的字典列表。请参见示例剧本。
- sshd_match_1 到 sshd_match_9
一个字典列表或一个字典,用于 Match 部分。
依赖关系
无
示例剧本
危险! 该示例用于展示该角色提供的配置范围,运行它可能会破坏您对服务器的 SSH 访问!
---
- hosts: all
vars:
sshd_skip_defaults: true
sshd:
Compression: true
ListenAddress:
- "0.0.0.0"
- "::"
GSSAPIAuthentication: no
Match:
- Condition: "Group user"
GSSAPIAuthentication: yes
sshd_UsePrivilegeSeparation: no
sshd_match:
- Condition: "Group xusers"
X11Forwarding: yes
roles:
- role: willshersystems.sshd
结果为:
# Ansible 管理: ...
Compression yes
GSSAPIAuthentication no
UsePrivilegeSeparation no
Match Group user
GSSAPIAuthentication yes
Match Group xusers
X11Forwarding yes
模板生成
sshd_config.j2 模板由 meta 中的脚本程序生成。新选项应添加到 options_body 或 options_match 中。
要重新生成模板,请在 meta/ 目录内运行:
./make_option_list >../templates/sshd_config.j2
许可证
LGPLv3
作者
Matt Willsher matt@willsher.systems
© 2014, 2015 Willsher Systems Ltd.