Newer
Older
# sshd server configuration file, allowing root. -*- conf -*-
#
# This sshd configuration permits root logins provided that they're done via
# GSS-API. It will eventually become the default. The default configuration
# values that we don't change are omitted from this file.
Port 22
<%
if (listen_addresses != 'all')
# Split the addresses at the commas.
addresses = listen_addresses.split(',')
addresses.each do |address|
-%>
ListenAddress <%= address %>
<%
end
end
-%>
# Only support protocol version 2.
Protocol 2
# Only support RSA keys, not DSA keys.
HostKey /etc/ssh/ssh_host_rsa_key
# Increase the login grace period from 120 seconds to 300 seconds (5 minutes).
LoginGraceTime 300
# Prevent attackers from running long password guessing attacks.
MaxAuthTries <%= max_tries %>
<% if @osfamily == 'RedHat' then -%>
# Some Red Hat systems are old enough that this has to be explicitly enabled.
UsePrivilegeSeparation yes
<% end -%>
# Disable all forms of host-based and public key authentication by default,
# since we use GSS-API (or passwords).
IgnoreRhosts yes
RSAAuthentication no
PubkeyAuthentication <%= pubkey ? 'yes' : 'no' %>
RhostsRSAAuthentication no
HostbasedAuthentication <%= hostbased ? 'yes' : 'no' %>
# Allow password authentication via PAM, but not empty passwords.
ChallengeResponseAuthentication yes
PasswordAuthentication yes
UsePAM yes
PermitEmptyPasswords no
# Enable GSS-API authentication. Eventually (squeeze and later) we will want
# to add GSSAPIStoreCredentialsOnRekey yes.
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
<% if (@osfamily != 'RedHat') or (lsbmajdistrelease.to_i() >= 6) then -%>
GSSAPIKeyExchange yes
GSSAPIStrictAcceptorCheck no
<% end -%>
<% if (@operatingsystem == 'Debian') and (@lsbdistcodename != 'lenny') then -%>
<% if (@osfamily == 'RedHat') and (lsbmajdistrelease.to_i() >= 6) then -%>
# Require both (GSS-API|PASSWORD) and PAM.
AuthenticationMethods gssapi-with-mic,keyboard-interactive:pam password,keyboard-interactive:pam
KerberosAuthentication yes
<% end -%>
<%- if (@rootloginwithpswd == 'yes') -%>
# Allow root login with a password (use with care!)
PermitRootLogin yes
<% else -%>
# Allow root login, but only if no password was used (meaning GSS-API).
PermitRootLogin without-password
# Allow X forwarding.
X11Forwarding yes
X11DisplayOffset 10
<% if @osfamily != 'RedHat' then -%>
# Disable printing of the MOTD, since this is done via other means on Debian.
PrintMotd no
# Send TCP keep-alive messages to keep the connection open through firewalls
# and notice connection termination.
TCPKeepAlive yes
# Enable sftp.
<% if @osfamily == 'RedHat' then -%>
Subsystem sftp /usr/libexec/openssh/sftp-server
<% else -%>
Subsystem sftp /usr/lib/openssh/sftp-server
<% end -%>
<% if gitolite then -%>
# gitolite user should run through a wrapper to map it to actual user.
Match User gitolite
ForceCommand /usr/share/gitolite/gitolite-wrapper
<% end -%>
<% if (@pam_duo) and (@rootloginwithpswd == 'no') then -%>
# Because we are enabling Duo but root logins cannot use Duo (yet),
# we have to configure the authentications for root separately.
Match User root
AuthenticationMethods gssapi-with-mic
MaxSessions 3
<% end -%>