Turgon37.ssh_server

Ansible角色 SSH服务器

构建状态 许可证 Ansible角色

描述

: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
关于项目

This role configure SSH server

安装
ansible-galaxy install Turgon37.ssh_server
许可证
mit
下载
1.3k
拥有者
Ingénieur, Informaticien, curieux de nouvelles technologies. Passionné par le libre et l'esprit de communauté