2019-11-02 18:10:39 +00:00
|
|
|
#jinja2: lstrip_blocks: True
|
|
|
|
{{ ansible_managed | comment }}
|
|
|
|
|
2022-01-26 20:02:28 +00:00
|
|
|
# This is the sshd server system-wide configuration file.
|
|
|
|
# See sshd_config(5) for more information.
|
2019-11-02 18:10:39 +00:00
|
|
|
|
|
|
|
# This sshd was compiled with PATH=/usr/local/bin:/usr/bin
|
|
|
|
|
|
|
|
# The strategy used for options in the default sshd_config shipped with
|
|
|
|
# OpenSSH is to specify options with their default value where
|
|
|
|
# possible, but leave them commented. Uncommented options override the
|
|
|
|
# default value.
|
|
|
|
|
|
|
|
# If you want to change the port on a SELinux system, you have to tell
|
|
|
|
# SELinux about this change.
|
|
|
|
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
|
|
|
|
#
|
2024-09-16 07:32:50 +00:00
|
|
|
Port {{ sshd_port }}
|
2019-11-02 18:10:39 +00:00
|
|
|
#AddressFamily any
|
|
|
|
#ListenAddress 0.0.0.0
|
|
|
|
#ListenAddress ::
|
2022-09-19 12:44:20 +00:00
|
|
|
{% if ansible_os_family | lower == "redhat" and ansible_distribution_major_version is version('8', '<') %}
|
2019-11-02 18:10:39 +00:00
|
|
|
|
|
|
|
Protocol {{ sshd_protocol }}
|
2022-01-26 20:02:28 +00:00
|
|
|
{% endif %}
|
2019-11-02 18:10:39 +00:00
|
|
|
|
|
|
|
HostKey /etc/ssh/ssh_host_rsa_key
|
|
|
|
HostKey /etc/ssh/ssh_host_ecdsa_key
|
|
|
|
HostKey /etc/ssh/ssh_host_ed25519_key
|
|
|
|
|
|
|
|
# Ciphers and keying
|
2022-09-19 13:41:59 +00:00
|
|
|
#RekeyLimit default none
|
2022-01-26 20:02:28 +00:00
|
|
|
|
2022-09-18 20:21:56 +00:00
|
|
|
{% if sshd_crypto_policy_enabled | bool %}
|
2022-01-26 20:02:28 +00:00
|
|
|
# This system is following system-wide crypto policy. The changes to
|
|
|
|
# crypto properties (Ciphers, MACs, ...) will not have any effect here.
|
|
|
|
# They will be overridden by command-line options passed to the server
|
|
|
|
# on command line.
|
|
|
|
# Please, check manual pages for update-crypto-policies(8) and sshd_config(5).
|
|
|
|
{% else %}
|
2019-11-02 18:10:39 +00:00
|
|
|
Ciphers {{ sshd_ciphers | join(',') }}
|
|
|
|
KexAlgorithms {{ sshd_kex | join(',') }}
|
|
|
|
MACs {{ sshd_macs | join(',') }}
|
2022-01-26 20:02:28 +00:00
|
|
|
{% endif %}
|
2019-11-02 18:10:39 +00:00
|
|
|
|
|
|
|
# Logging
|
|
|
|
#SyslogFacility AUTH
|
|
|
|
SyslogFacility AUTHPRIV
|
|
|
|
LogLevel {{ sshd_log_level }}
|
|
|
|
|
|
|
|
# Authentication:
|
|
|
|
|
2022-09-19 13:49:40 +00:00
|
|
|
LoginGraceTime {{ sshd_login_grace_time }}
|
2019-11-02 18:10:39 +00:00
|
|
|
PermitRootLogin {{ sshd_permit_root_login }}
|
|
|
|
StrictModes {{ sshd_strict_modes }}
|
|
|
|
{% if sshd_allow_groups %}
|
|
|
|
AllowGroups {{ sshd_allow_groups|join(',') }}
|
|
|
|
{% endif %}
|
|
|
|
MaxAuthTries {{ sshd_max_auth_tries }}
|
|
|
|
MaxSessions {{ sshd_max_sessions }}
|
|
|
|
|
|
|
|
#PubkeyAuthentication yes
|
|
|
|
|
|
|
|
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
|
|
|
|
# but this is overridden so installations will only check .ssh/authorized_keys
|
|
|
|
AuthorizedKeysFile .ssh/authorized_keys
|
|
|
|
|
|
|
|
#AuthorizedPrincipalsFile none
|
|
|
|
|
|
|
|
#AuthorizedKeysCommand none
|
|
|
|
#AuthorizedKeysCommandUser nobody
|
|
|
|
|
|
|
|
HostbasedAuthentication {{ sshd_hostbased_authentication }}
|
|
|
|
#IgnoreUserKnownHosts no
|
|
|
|
# Don't read the user's ~/.rhosts and ~/.shosts files
|
|
|
|
IgnoreRhosts {{ sshd_ignore_rhosts }}
|
|
|
|
|
|
|
|
{% if sshd_google_auth_enabled %}
|
|
|
|
# Force public key auth then ask for google auth code
|
|
|
|
AuthenticationMethods publickey,keyboard-interactive
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
# To disable tunneled clear text passwords, change to no here!
|
|
|
|
PasswordAuthentication {{ sshd_password_authentication }}
|
|
|
|
PermitEmptyPasswords {{ sshd_permit_empty_passwords }}
|
|
|
|
|
|
|
|
# Change to no to disable s/key passwords
|
|
|
|
ChallengeResponseAuthentication {{ sshd_challenge_response_authentication }}
|
|
|
|
|
|
|
|
# Kerberos options
|
|
|
|
#KerberosAuthentication no
|
|
|
|
#KerberosOrLocalPasswd yes
|
|
|
|
#KerberosTicketCleanup yes
|
|
|
|
#KerberosGetAFSToken no
|
|
|
|
#KerberosUseKuserok yes
|
|
|
|
|
|
|
|
# GSSAPI options
|
|
|
|
GSSAPIAuthentication {{ sshd_gssapi_authentication }}
|
|
|
|
GSSAPICleanupCredentials no
|
|
|
|
#GSSAPIStrictAcceptorCheck yes
|
|
|
|
#GSSAPIKeyExchange no
|
|
|
|
#GSSAPIEnablek5users no
|
|
|
|
|
|
|
|
# Set this to 'yes' to enable PAM authentication, account processing,
|
|
|
|
# and session processing. If this is enabled, PAM authentication will
|
|
|
|
# be allowed through the ChallengeResponseAuthentication and
|
|
|
|
# PasswordAuthentication. Depending on your PAM configuration,
|
|
|
|
# PAM authentication via ChallengeResponseAuthentication may bypass
|
|
|
|
# the setting of "PermitRootLogin without-password".
|
|
|
|
# If you just want the PAM account and session checks to run without
|
|
|
|
# PAM authentication, then enable this but set PasswordAuthentication
|
|
|
|
# and ChallengeResponseAuthentication to 'no'.
|
2022-01-26 20:02:28 +00:00
|
|
|
# WARNING: 'UsePAM no' is not supported on RH based systems and may
|
|
|
|
# cause several problems.
|
2019-11-02 18:10:39 +00:00
|
|
|
UsePAM yes
|
|
|
|
|
|
|
|
AllowAgentForwarding {{ sshd_allow_agent_forwarding }}
|
|
|
|
AllowTcpForwarding {{ sshd_allow_tcp_forwarding }}
|
|
|
|
#GatewayPorts no
|
|
|
|
X11Forwarding {{ sshd_x11_forwarding }}
|
|
|
|
#X11DisplayOffset 10
|
|
|
|
#X11UseLocalhost yes
|
|
|
|
#PermitTTY yes
|
2022-09-19 12:44:20 +00:00
|
|
|
{% if ansible_os_family | lower == "redhat" and ansible_distribution_major_version is version('7', '>') %}
|
2022-09-12 14:52:20 +00:00
|
|
|
PrintMotd no
|
2022-09-19 07:55:08 +00:00
|
|
|
{% endif %}
|
2019-11-02 18:10:39 +00:00
|
|
|
#PrintLastLog no
|
|
|
|
TCPKeepAlive {{ sshd_tcp_keep_alive }}
|
|
|
|
#UseLogin no
|
2022-09-19 12:44:20 +00:00
|
|
|
{% if ansible_os_family | lower == "redhat" and ansible_distribution_major_version is version('8', '<') %}
|
2019-11-02 18:10:39 +00:00
|
|
|
UsePrivilegeSeparation sandbox
|
2022-01-26 20:02:28 +00:00
|
|
|
{% endif %}
|
2019-11-02 18:10:39 +00:00
|
|
|
#PermitUserEnvironment no
|
|
|
|
Compression {{ sshd_compression }}
|
|
|
|
ClientAliveInterval {{ sshd_client_alive_interval }}
|
|
|
|
ClientAliveCountMax {{ sshd_client_alive_count_max }}
|
|
|
|
UseDNS {{ sshd_use_dns }}
|
|
|
|
#PidFile /var/run/sshd.pid
|
2022-09-19 13:49:40 +00:00
|
|
|
MaxStartups {{ sshd_max_startups }}
|
2019-11-02 18:10:39 +00:00
|
|
|
#PermitTunnel no
|
|
|
|
#ChrootDirectory none
|
|
|
|
#VersionAddendum none
|
|
|
|
|
|
|
|
# no default banner path
|
|
|
|
#Banner none
|
|
|
|
|
|
|
|
# Accept locale-related environment variables
|
|
|
|
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
|
|
|
|
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
|
|
|
|
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
|
|
|
|
AcceptEnv XMODIFIERS
|
|
|
|
|
|
|
|
# override default of no subsystems
|
|
|
|
Subsystem sftp /usr/libexec/openssh/sftp-server
|
|
|
|
|
|
|
|
# Example of overriding settings on a per-user basis
|
|
|
|
#Match User anoncvs
|
|
|
|
# X11Forwarding no
|
|
|
|
# AllowTcpForwarding no
|
|
|
|
# PermitTTY no
|
|
|
|
# ForceCommand cvs server
|
|
|
|
|
|
|
|
{% if sshd_google_auth_exclude_group is defined %}
|
|
|
|
Match User {{ sshd_google_auth_exclude_group }}
|
|
|
|
AuthenticationMethods publickey
|
|
|
|
{% endif %}
|