123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- {% if ansible_controlled is defined and ansible_controlled != "" %}
- #
- # {{ ansible_controlled }}
- #
- {% endif %}
- # Package generated configuration file
- # See the sshd_config(5) manpage for details
- # What ports, IPs and protocols we listen for
- {% for port in ssh_ports %}
- Port {{ port }}
- {% endfor %}
- # Use these options to restrict which interfaces/protocols sshd will bind to
- #ListenAddress ::
- #ListenAddress 0.0.0.0
- Protocol 2
- # HostKeys for protocol version 2
- HostKey /etc/ssh/ssh_host_rsa_key
- HostKey /etc/ssh/ssh_host_dsa_key
- {% if ansible_lsb.major_release|int >= 7 %}
- HostKey /etc/ssh/ssh_host_ecdsa_key
- {% endif %}
- {% if ansible_lsb.major_release|int >= 8 %}
- HostKey /etc/ssh/ssh_host_ed25519_key
- {% endif %}
- #Privilege Separation is turned on for security
- UsePrivilegeSeparation yes
- {% if not ssh_usedns %}
- # Enable/Disable reverse DNS check
- # Avois long lag in case of IPv6 connection with no reverse configured
- UseDns no
- {% endif %}
- # Lifetime and size of ephemeral version 1 server key
- KeyRegenerationInterval 3600
- ServerKeyBits 1024
- # Logging
- SyslogFacility AUTH
- LogLevel INFO
- # Authentication:
- LoginGraceTime 120
- PermitRootLogin without-password
- StrictModes yes
- RSAAuthentication yes
- PubkeyAuthentication yes
- #AuthorizedKeysFile %h/.ssh/authorized_keys
- # Don't read the user's ~/.rhosts and ~/.shosts files
- IgnoreRhosts yes
- # For this to work you will also need host keys in /etc/ssh_known_hosts
- RhostsRSAAuthentication no
- # similar for protocol version 2
- HostbasedAuthentication no
- # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
- #IgnoreUserKnownHosts yes
- # To enable empty passwords, change to yes (NOT RECOMMENDED)
- PermitEmptyPasswords no
- # Change to yes to enable challenge-response passwords (beware issues with
- # some PAM modules and threads)
- ChallengeResponseAuthentication no
- # Change to no to disable tunnelled clear text passwords
- #PasswordAuthentication yes
- # Kerberos options
- #KerberosAuthentication no
- #KerberosGetAFSToken no
- #KerberosOrLocalPasswd yes
- #KerberosTicketCleanup yes
- # GSSAPI options
- #GSSAPIAuthentication no
- #GSSAPICleanupCredentials yes
- X11Forwarding no
- X11DisplayOffset 10
- PrintMotd no
- PrintLastLog yes
- TCPKeepAlive yes
- #UseLogin no
- #MaxStartups 10:30:60
- #Banner /etc/issue.net
- # Allow client to pass locale environment variables
- AcceptEnv LANG LC_*
- Subsystem sftp /usr/lib/openssh/sftp-server
- # 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'.
- UsePAM yes
- # Maximum number of authentication attempts permitted per connection
- MaxAuthTries 3
- {% if ssh_allowed_users %}
- # Define users allowed to login
- AllowUsers {{ ssh_allowed_users | join(' ') }}
- {% endif %}
- {% if not ssh_allowed_users and ssh_allowed_groups %}
- # Define users groups allowed to login
- AllowGroups {{ ssh_allowed_groups | join(' ') }}
- {% endif %}
- {% if ssh_local_config is defined and ssh_local_config %}
- # Additional parameters
- {{ ssh_local_config|join('\n') }}
- {% endif %}
|