| {%- from "openssh/map.jinja" import server with context %} |
| |
| # Package generated configuration file |
| # See the sshd_config(5) manpage for details |
| |
| # What ports, IPs and protocols we listen for |
| Port 22 |
| # 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 grains.os_family != 'CentOS' %} |
| HostKey /etc/ssh/ssh_host_ecdsa_key |
| {%- endif %} |
| #Privilege Separation is turned on for security |
| UsePrivilegeSeparation yes |
| |
| # Lifetime and size of ephemeral version 1 server key |
| KeyRegenerationInterval 3600 |
| ServerKeyBits 768 |
| |
| # Logging |
| SyslogFacility AUTH |
| LogLevel INFO |
| |
| # Authentication: |
| LoginGraceTime 120 |
| |
| PermitRootLogin {% if server.get('permit_root_login', False) %}yes{% else %}no{% endif %} |
| |
| StrictModes yes |
| |
| RSAAuthentication yes |
| |
| PubkeyAuthentication {% if server.get('public_key_auth', True) %}yes{% else %}no{% endif %} |
| 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 {% if server.get('host_auth', False) %}yes{% else %}no{% endif %} |
| |
| # 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 {% if server.get('password_auth', True) %}yes{% else %}no{% endif %} |
| |
| # Kerberos options |
| #KerberosAuthentication no |
| #KerberosGetAFSToken no |
| #KerberosOrLocalPasswd yes |
| #KerberosTicketCleanup yes |
| |
| # GSSAPI options |
| #GSSAPIAuthentication no |
| #GSSAPICleanupCredentials yes |
| |
| X11Forwarding yes |
| X11DisplayOffset 10 |
| PrintMotd no |
| PrintLastLog yes |
| TCPKeepAlive yes |
| #UseLogin no |
| |
| {%- if server.max_sessions is defined %} |
| MaxSessions {{ server.max_sessions }} |
| {%- else %} |
| MaxSessions 10 |
| {%- endif %} |
| {%- if server.max_startups is defined %} |
| MaxStartups {{ server.max_startups }} |
| {%- else %} |
| #MaxStartups 10:30:60 |
| {%- endif %} |
| |
| {%- if server.banner is defined %} |
| Banner /etc/banner |
| {%- else %} |
| #Banner /etc/banner |
| {%- endif %} |
| |
| # Allow client to pass locale environment variables |
| AcceptEnv LANG LC_* |
| |
| Subsystem sftp {{ server.lib_dir }}/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 |
| |