Turgon37.ssh_server
Ansible角色 SSH服务器
描述
:grey_exclamation: 在使用此角色之前,请了解我所有的Ansible角色都是基于我IT基础设施完全编写的。因此,即使它们尽可能通用,也不一定能满足您的需求。我建议您仔细分析它们的功能,并评估它们能否安全地安装在您的服务器上。
此角色允许配置SSH服务器。
要求
需要Ansible版本 >= 2.4
依赖
操作系统家族
此角色适用于Debian和CentOS。
特性
目前可以使用此角色:
- 安装sshd
- 配置sshd
- 过滤初始模数以去除弱质数
- 本地事实
角色变量
所有可重写的变量存储在defaults/main.yml文件和下面的表格中。有关默认值,请参阅该文件。
大多数变量与纯sshd配置参数相关。请参考手册页获取信息。
名称 | 类型/值 | 描述 |
---|---|---|
ssh_server__facts |
布尔值 | 安装本地事实脚本 |
ssh_server__moduli_minimum |
整数 | 模数文件中保留的最小质数大小 |
ssh_server__service_enabled |
布尔值 | 启用或禁用服务 |
ssh_server__protocol |
字符串 | 请参阅手册页 |
ssh_server__privilege_separation |
字符串 | 请参阅手册页 |
ssh_server__pidfile |
字符串 | 请参阅手册页 |
ssh_server__log_facility |
字符串 | 请参阅手册页 |
ssh_server__log_level |
字符串 | 请参阅手册页 |
ssh_server__ports |
整数列表 | 请参阅手册页 |
ssh_server__listen |
IP地址列表 | 请参阅手册页 |
ssh_server__address_family |
字符串 | 请参阅手册页 |
ssh_server__use_dns |
布尔值 | 请参阅手册页 |
ssh_server__tcp_keepalive |
布尔值 | 请参阅手册页 |
ssh_server__allow_agent_forwarding |
布尔值 | 请参阅手册页 |
ssh_server__allow_tcp_forwarding |
布尔值 | 请参阅手册页 |
ssh_server__permit_open |
字符串 | 请参阅手册页 |
ssh_server__gateway_ports |
字符串 | 请参阅手册页 |
ssh_server__allow_stream_local_forwarding |
布尔值 | 请参阅手册页 |
ssh_server__permit_tunnel |
布尔值 | 请参阅手册页 |
ssh_server__compression |
字符串 | 请参阅手册页 |
ssh_server__ip_qos |
元组 | 请参阅手册页 |
ssh_server__kex_algorithms |
字符串列表 | 请参阅手册页 |
ssh_server__kex_algorithms_additional |
字符串列表 | 请参阅手册页 |
ssh_server__ciphers |
字符串列表 | 请参阅手册页 |
ssh_server__ciphers_additional |
字符串列表 | 请参阅手册页 |
ssh_server__macs |
字符串列表 | 请参阅手册页 |
ssh_server__macs_additional |
字符串列表 | 请参阅手册页 |
ssh_server__server_key_bits |
整数 | 请参阅手册页 |
ssh_server__key_regeneration_interval |
整数 | 请参阅手册页 |
ssh_server__authentication_methods |
字符串 | 请参阅手册页 |
ssh_server__use_pam |
布尔值 | 请参阅手册页 |
ssh_server__use_login |
布尔值 | 请参阅手册页 |
ssh_server__password_authentication |
布尔值 | 请参阅手册页 |
ssh_server__permit_empty_passwords |
布尔值 | 请参阅手册页 |
ssh_server__challenge_response_authentication |
布尔值 | 请参阅手册页 |
ssh_server__keyboard_interactive_authentication |
布尔值 | 请参阅手册页 |
ssh_server__pubkey_authentication |
布尔值 | 请参阅手册页 |
ssh_server__authorized_keys |
字符串列表 | 请参阅手册页 AuthorizedKeysFile |
ssh_server__authorized_keys_system |
字符串列表 | 包含全局系统授权密钥文件的路径 |
ssh_server__authorized_keys_user |
字符串 | 包含每个用户授权密钥文件的路径 |
ssh_server__authorized_keys_command |
字符串 | 请参阅手册页 |
ssh_server__authorized_keys_command_user |
字符串列表 | 请参阅手册页 |
ssh_server__permit_blacklisted_keys |
请参阅手册页 | |
ssh_server__rsa_authentication |
布尔值 | 请参阅手册页 |
ssh_server__rhosts_rsa_authentication |
布尔值 | 请参阅手册页 |
ssh_server__host_based_authentication |
布尔值 | 请参阅手册页 |
ssh_server__host_based_uses_name_from_packet_only |
布尔值 | 请参阅手册页 |
ssh_server__ignore_user_known_hosts |
布尔值 | 请参阅手册页 |
ssh_server__ignore_rhosts |
布尔值 | 请参阅手册页 |
ssh_server__kerberos_authentication |
布尔值 | 请参阅手册页 |
ssh_server__kerberos_get_afs_token |
布尔值 | 请参阅手册页 |
ssh_server__kerberos_or_local_passwd |
布尔值 | 请参阅手册页 |
ssh_server__kerberos_ticket_cleanup |
布尔值 | 请参阅手册页 |
ssh_server__kerberos_use_kuserok |
布尔值 | 请参阅手册页 |
ssh_server__gssapi_authentication |
布尔值 | 请参阅手册页 |
ssh_server__gssapi_key_exchange |
布尔值 | 请参阅手册页 |
ssh_server__gssapi_cleanup_credentials |
布尔值 | 请参阅手册页 |
ssh_server__gssapi_strict_acceptor_check |
布尔值 | 请参阅手册页 |
ssh_server__gssapi_store_credentials_on_rekey |
布尔值 | 请参阅手册页 |
ssh_server__gssapi_enable_k5_users |
布尔值 | 请参阅手册页 |
ssh_server__deny_users |
字符串列表 | 请参阅手册页 |
ssh_server__allow_users |
字符串列表 | 请参阅手册页 |
ssh_server__deny_groups |
字符串列表 | 请参阅手册页 |
ssh_server__allow_groups |
字符串列表 | 请参阅手册页 |
ssh_server__permit_root_login |
字符串 | 请参阅手册页 |
ssh_server__login_grace_time |
字符串 | 请参阅手册页 |
ssh_server__max_auth_tries |
整数 | 请参阅手册页 |
ssh_server__max_sessions |
整数 | 请参阅手册页 |
ssh_server__max_startups |
特定字典 | 此字典必须具有'开始','速率','满'的键(请参阅手册页) |
ssh_server__accept_env |
字符串列表 | 请参阅手册页 |
ssh_server__permit_user_environment |
布尔值 | 请参阅手册页 |
ssh_server__permit_user_rc |
布尔值 | 请参阅手册页 |
ssh_server__permit_tty |
布尔值 | 请参阅手册页 |
ssh_server__strict_modes |
布尔值 | 请参阅手册页 |
ssh_server__version_addendum |
字符串 | 请参阅手册页 |
ssh_server__banner |
字符串 | 请参阅手册页 |
ssh_server__debian_banner |
布尔值 | 请参阅手册页 |
ssh_server__print_motd |
布尔值 | 请参阅手册页 |
ssh_server__print_last_log |
布尔值 | 请参阅手册页 |
ssh_server__force_command |
字符串 | 请参阅手册页 |
ssh_server__chroot_directory |
字符串 | 请参阅手册页 |
ssh_server__client_alive_interval |
整数 | 请参阅手册页 |
ssh_server__client_alive_count_max |
整数 | 请参阅手册页 |
ssh_server__x11_forwarding |
布尔值 | 请参阅手册页 |
ssh_server__x11_display_offset |
整数 | 请参阅手册页 |
ssh_server__x11_use_localhost |
布尔值 | 请参阅手册页 |
ssh_server__subsystems_global/group/host |
字典 | 子系统名称和子系统命令的映射 |
ssh_server__match_list_global/group/host |
匹配块列表 | 配置匹配块(见下文) |
匹配条件
您可以使用可用的 ssh_server__match_list_global/group/host
变量配置匹配选项。 这些变量可以列出字典。每个字典必须具有以下形式:
ssh_server__match_list_global
- match: "匹配条件"
options: # 应用在“匹配”时的选项
- AllowUsers test # 简单字符串选项
# 具有版本条件的字典
# 根据当前sshd版本,较高版本条件优先并应用其选项
- 8.2: AuthorizedKeysCommand /bin/true # (字符串版本)
7.6: # (列表版本)
- AuthenticationMethods publickey
- AllowUsers root
state: absent # 可选状态(默认值为present)
可用的匹配条件和可以应用的选项取决于您当前的sshd版本。
下面给出一个仅允许运行sftp的组示例,如果您想启用它,可以在清单中使用以下块:
ssh_server__match_list_global:
- '{{ ssh_server__match_group_sftponly }}'
事实
默认情况下安装本地事实并公开以下变量:
ansible_local.ssh_server:
version_full: '7.9p1'
version_major: '7'
示例
剧本
在剧本中使用如下:
- hosts: all
roles:
- turgon37.ssh_server
清单
要使用此角色,请根据以下示例创建或更新您的剧本:
ssh_server__allow_agent_forwarding: false
ssh_server__allow_tcp_forwarding: false
ssh_server__allow_stream_local_forwarding: false
ssh_server__permit_tunnel: false
ssh_server__compression: true
ssh_server__allow_groups:
- ssh
- ssh-admins
ssh_server__permit_root_login: false
ssh_server__max_startups:
start: 5
rate: 80
full: 10
ssh_server__match_list_global:
- match: "LocalAddress 127.0.0.1"
options:
- AuthenticationMethods publickey,password
state: present
- match: "LocalAddress 10.0.0.1 Group ssh-admins"
options:
- AuthenticationMethods publickey password gssapi-with-mic
- match: "LocalAddress 10.0.0.1 User root"
options:
- DenyUsers
- AllowUsers root
- DenyGroups
- AllowGroups root
- 7.0: 'PermitRootLogin prohibit-password'
4.9: 'PermitRootLogin without-password'
- AuthenticationMethods publickey
- AuthorizedKeysFile /root/.ssh/authorized_keys
- AuthorizedKeysCommand /bin/true
ssh_client__known_hosts_additionals:
- '[gitlab]:7999 ssh-rsa XXXXX'
FreeIPA配置示例
ssh_server__authorized_keys: '/dev/null'
ssh_server__authorized_keys_lookup: true
ssh_server__authorized_keys_lookup_command: /usr/bin/sss_ssh_authorizedkeys
ssh_server__pubkey_authentication: true
ssh_server__gssapi_authentication: true