Merge remote-tracking branch 'shared/master'

This commit is contained in:
mh 2011-07-29 19:31:41 +02:00
commit cb7cd9e314
16 changed files with 533 additions and 25 deletions

12
README
View file

@ -170,6 +170,13 @@ The following is a list of the currently available variables:
(e.g. /etc/ssh/authorized_keys/%u). Default: AuthorizedKeysFile (e.g. /etc/ssh/authorized_keys/%u). Default: AuthorizedKeysFile
%h/.ssh/authorized_keys %h/.ssh/authorized_keys
$sshd_hardened_ssl
Use only strong SSL ciphers and MAC.
Values: no or yes; Default: no.
$sshd_print_motd
Show the Message of the day when a user logs in.
$sshd_sftp_subsystem $sshd_sftp_subsystem
Set a different sftp-subystem than the default one. Might be interesting for Set a different sftp-subystem than the default one. Might be interesting for
sftponly usage. Default: empty -> no change of the default sftponly usage. Default: empty -> no change of the default
@ -187,6 +194,11 @@ The following is a list of the currently available variables:
be useful to define complicated Match Blocks. This string is going to be be useful to define complicated Match Blocks. This string is going to be
included, like it is defined. So take care! Default: empty -> not added. included, like it is defined. So take care! Default: empty -> not added.
$sshd_shared_ip
Whether the server uses a shared network IP address. If it does, then we
don't want it to export an rsa key for its IP address.
Values: no or yes; Default: no
Defines and functions Defines and functions
--------------------- ---------------------

View file

@ -10,18 +10,24 @@ class sshd::base {
} }
# Now add the key, if we've got one # Now add the key, if we've got one
case $sshrsakey_key { case $sshrsakey {
'': { info("no sshrsakey on $fqdn") } '': { info("no sshrsakey on $fqdn") }
default: { default: {
@@sshkey{"$hostname.$domain": @@sshkey{"$fqdn":
type => ssh-rsa, tag => "fqdn",
key => $sshrsakey_key, type => ssh-rsa,
key => $sshrsakey,
ensure => present, ensure => present,
} }
@@sshkey{"$ipaddress": # In case the node has uses a shared network address,
type => ssh-rsa, # we don't define a sshkey resource using an IP address
key => $sshrsakey, if $sshd_shared_ip == "no" {
ensure => present, @@sshkey{"$ipaddress":
tag => "ipaddress",
type => ssh-rsa,
key => $sshrsakey,
ensure => present,
}
} }
} }
} }

View file

@ -1,16 +1,23 @@
# manifests/client.pp # manifests/client.pp
class sshd::client { class sshd::client {
case $sshd_shared_ip {
'': { $sshd_shared_ip = "no" }
}
case $operatingsystem { case $operatingsystem {
debian,ubuntu: { include sshd::client::debian } debian,ubuntu: { include sshd::client::debian }
default: { default: {
case $kernel { case $kernel {
linux: { include sshd::client::linux } linux: { include sshd::client::linux }
default: { include sshd::client::base } default: { include sshd::client::base }
} }
} }
} }
if $use_shorewall{ if $use_shorewall{
include shorewall::rules::out::ssh include shorewall::rules::out::ssh
} }
} }

View file

@ -4,5 +4,8 @@ class sshd::client::base {
} }
# Now collect all server keys # Now collect all server keys
Sshkey <<||>> case $sshd_shared_ip {
no: { Sshkey <<||>> }
yes: { Sshkey <<| tag == "fqdn" |>> }
}
} }

View file

@ -77,6 +77,9 @@ class sshd {
case $sshd_authorized_keys_file { case $sshd_authorized_keys_file {
'': { $sshd_authorized_keys_file = "%h/.ssh/authorized_keys" } '': { $sshd_authorized_keys_file = "%h/.ssh/authorized_keys" }
} }
case $sshd_hardened_ssl {
'': { $sshd_hardened_ssl = 'no' }
}
case $sshd_sftp_subsystem { case $sshd_sftp_subsystem {
'': { $sshd_sftp_subsystem = '' } '': { $sshd_sftp_subsystem = '' }
} }
@ -89,8 +92,19 @@ class sshd {
case $sshd_ensure_version { case $sshd_ensure_version {
'': { $sshd_ensure_version = "present" } '': { $sshd_ensure_version = "present" }
} }
case $sshd_print_motd {
'': {
case $operatingsystem {
debian,ubuntu: { $sshd_print_motd = "no" }
default: { $sshd_print_motd = "yes" }
}
}
}
case $sshd_shared_ip {
'': { $sshd_shared_ip = "no" }
}
include sshd::client include sshd::client
case $operatingsystem { case $operatingsystem {
gentoo: { include sshd::gentoo } gentoo: { include sshd::gentoo }
@ -98,7 +112,7 @@ class sshd {
centos: { include sshd::centos } centos: { include sshd::centos }
openbsd: { include sshd::openbsd } openbsd: { include sshd::openbsd }
debian,ubuntu: { include sshd::debian } debian,ubuntu: { include sshd::debian }
default: { include sshd::default } default: { include sshd::base }
} }
if $use_nagios { if $use_nagios {

View file

@ -3,7 +3,7 @@ define sshd::ssh_authorized_key(
$ensure = 'present', $ensure = 'present',
$type = 'ssh-dss', $type = 'ssh-dss',
$key = 'absent', $key = 'absent',
$user = 'root', $user = '',
$target = undef, $target = undef,
$options = 'absent' $options = 'absent'
){ ){
@ -22,7 +22,7 @@ define sshd::ssh_authorized_key(
undef,'': { undef,'': {
case $real_user { case $real_user {
'root': { $real_target = '/root/.ssh/authorized_keys' } 'root': { $real_target = '/root/.ssh/authorized_keys' }
default: { $real_target = "/home/${user}/.ssh/authorized_keys" } default: { $real_target = "/home/${real_user}/.ssh/authorized_keys" }
} }
} }
default: { default: {

View file

@ -171,7 +171,7 @@ X11Forwarding no
<%- end -%> <%- end -%>
#X11DisplayOffset 10 #X11DisplayOffset 10
#X11UseLocalhost yes #X11UseLocalhost yes
#PrintMotd yes PrintMotd <%= sshd_print_motd %>
#PrintLastLog yes #PrintLastLog yes
#TCPKeepAlive yes #TCPKeepAlive yes
#UseLogin no #UseLogin no
@ -204,6 +204,11 @@ AllowUsers <%= sshd_allowed_users %>
AllowGroups <%= sshd_allowed_groups %> AllowGroups <%= sshd_allowed_groups %>
<%- end -%> <%- end -%>
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes256-ctr
MACs hmac-sha1
<%- end -%>
<%- unless sshd_tail_additional_options.to_s.empty? then %> <%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %> <%= sshd_tail_additional_options %>
<%- end %> <%- end %>

View file

@ -170,9 +170,13 @@ AllowUsers <%= sshd_allowed_users -%>
AllowGroups <%= sshd_allowed_groups %> AllowGroups <%= sshd_allowed_groups %>
<%- end %> <%- end %>
PrintMotd no PrintMotd <%= sshd_print_motd %>
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes256-ctr
MACs hmac-sha1
<%- end -%>
<%- unless sshd_tail_additional_options.to_s.empty? then %> <%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %> <%= sshd_tail_additional_options %>
<%- end %> <%- end %>

View file

@ -179,9 +179,13 @@ AllowUsers <%= sshd_allowed_users -%>
AllowGroups <%= sshd_allowed_groups %> AllowGroups <%= sshd_allowed_groups %>
<%- end %> <%- end %>
PrintMotd no PrintMotd <%= sshd_print_motd %>
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes256-ctr
MACs hmac-sha1
<%- end -%>
<%- unless sshd_tail_additional_options.to_s.empty? then %> <%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %> <%= sshd_tail_additional_options %>
<%- end %> <%- end %>

View file

@ -145,7 +145,7 @@ X11Forwarding yes
X11Forwarding no X11Forwarding no
<%- end -%> <%- end -%>
X11DisplayOffset 10 X11DisplayOffset 10
PrintMotd no PrintMotd <%= sshd_print_motd %>
PrintLastLog yes PrintLastLog yes
TCPKeepAlive yes TCPKeepAlive yes
@ -197,6 +197,11 @@ AllowUsers <%= sshd_allowed_users -%>
AllowGroups <%= sshd_allowed_groups %> AllowGroups <%= sshd_allowed_groups %>
<%- end %> <%- end %>
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes256-ctr
MACs hmac-sha1
<%- end -%>
<%- unless sshd_tail_additional_options.to_s.empty? then %> <%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %> <%= sshd_tail_additional_options %>
<%- end %> <%- end %>

View file

@ -145,7 +145,7 @@ X11Forwarding yes
X11Forwarding no X11Forwarding no
<%- end -%> <%- end -%>
X11DisplayOffset 10 X11DisplayOffset 10
PrintMotd no PrintMotd <%= sshd_print_motd %>
PrintLastLog yes PrintLastLog yes
TCPKeepAlive yes TCPKeepAlive yes
@ -197,6 +197,11 @@ AllowUsers <%= sshd_allowed_users -%>
AllowGroups <%= sshd_allowed_groups %> AllowGroups <%= sshd_allowed_groups %>
<%- end %> <%- end %>
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes256-ctr
MACs hmac-sha1
<%- end -%>
<%- unless sshd_tail_additional_options.to_s.empty? then %> <%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %> <%= sshd_tail_additional_options %>
<%- end %> <%- end %>

View file

@ -0,0 +1 @@
Debian_sid.erb

View file

@ -0,0 +1,243 @@
# $OpenBSD: sshd_config,v 1.81 2009/10/08 14:03:41 markus Exp $
# $FreeBSD: src/crypto/openssh/sshd_config,v 1.49.2.2.2.1 2010/06/14 02:09:06 kensmith Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# 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 change a
# default value.
# Note that some of FreeBSD's defaults differ from OpenBSD's, and
# FreeBSD has a few additional options.
#VersionAddendum FreeBSD-20100308
<%- unless sshd_head_additional_options.to_s.empty? then %>
<%= sshd_head_additional_options %>
<%- end %>
# What ports, IPs and protocols we listen for
<%- sshd_ports.each do |port| -%>
<%- if port.to_s == 'off' then -%>
#Port -- disabled by puppet
<% else -%>
Port <%= port %>
<% end -%>
<%- end -%>
#AddressFamily any
<% for address in sshd_listen_address -%>
ListenAddress <%= address %>
<% end -%>
# The default requires explicit activation of protocol 1
Protocol 2
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024
# Logging
# obsoletes QuietMode and FascistLogging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 600
<%- unless sshd_permit_root_login.to_s.empty? then -%>
PermitRootLogin <%= sshd_permit_root_login -%>
<%- else -%>
PermitRootLogin without-password
<%- end -%>
<%- if sshd_strict_modes.to_s == 'yes' then -%>
StrictModes yes
<%- else -%>
StrictModes no
<%- end -%>
#MaxAuthTries 6
#MaxSessions 10
<%- if sshd_rsa_authentication.to_s == 'yes' then -%>
RSAAuthentication yes
<%- else -%>
RSAAuthentication no
<%- end -%>
<%- if sshd_pubkey_authentication.to_s == 'yes' then -%>
PubkeyAuthentication yes
<%- else -%>
PubkeyAuthentication no
<%- end -%>
<%- unless sshd_authorized_keys_file.to_s.empty? then -%>
AuthorizedKeysFile <%= sshd_authorized_keys_file %>
<%- else -%>
AuthorizedKeysFile %h/.ssh/authorized_keys
<%- end -%>
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
<%- if sshd_rhosts_rsa_authentication.to_s == 'yes' then -%>
RhostsRSAAuthentication yes
<%- else -%>
RhostsRSAAuthentication no
<% end -%>
# similar for protocol version 2
<%- if sshd_hostbased_authentication.to_s == 'yes' then -%>
HostbasedAuthentication yes
<%- else -%>
HostbasedAuthentication no
<% end -%>
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# Change to yes to enable built-in password authentication.
<%- if sshd_password_authentication.to_s == 'yes' then -%>
PasswordAuthentication yes
<%- else -%>
PasswordAuthentication no
<%- end -%>
<%- if sshd_permit_empty_passwords.to_s == 'yes' then -%>
PermitEmptyPasswords yes
<% else -%>
PermitEmptyPasswords no
<% end -%>
# Change to no to disable PAM authentication
<%- if sshd_challenge_response_authentication.to_s == 'yes' then -%>
ChallengeResponseAuthentication yes
<%- else -%>
ChallengeResponseAuthentication no
<%- end -%>
# Kerberos options
<%- if sshd_kerberos_authentication.to_s == 'yes' then -%>
KerberosAuthentication yes
<%- else -%>
KerberosAuthentication no
<%- end -%>
<%- if sshd_kerberos_orlocalpasswd.to_s == 'yes' then -%>
KerberosOrLocalPasswd yes
<%- else -%>
KerberosOrLocalPasswd no
<%- end -%>
<%- if sshd_kerberos_ticketcleanup.to_s == 'yes' then -%>
KerberosTicketCleanup yes
<%- else -%>
KerberosTicketCleanup no
<%- end -%>
# GSSAPI options
<%- if sshd_gssapi_authentication.to_s == 'yes' then -%>
GSSAPIAuthentication yes
<%- else -%>
GSSAPIAuthentication no
<%- end -%>
<%- if sshd_gssapi_authentication.to_s == 'yes' then -%>
GSSAPICleanupCredentials yes
<%- else -%>
GSSAPICleanupCredentials yes
<%- end -%>
# Set this to 'no' to disable 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'.
<%- if sshd_use_pam.to_s == 'yes' then -%>
UsePAM yes
<%- else -%>
UsePAM no
<%- end -%>
<%- if sshd_agent_forwarding.to_s == 'yes' then -%>
AllowAgentForwarding yes
<%- else -%>
AllowAgentForwarding no
<%- end -%>
<%- if sshd_tcp_forwarding.to_s == 'yes' then -%>
AllowTcpForwarding yes
<%- else -%>
AllowTcpForwarding no
<%- end -%>
#GatewayPorts no
<%- if sshd_x11_forwarding.to_s == 'yes' then -%>
X11Forwarding yes
<%- else -%>
X11Forwarding no
<%- end -%>
X11DisplayOffset 10
#X11UseLocalhost yes
PrintMotd <%= sshd_print_motd %>
#PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
#ChrootDirectory none
# no default banner path
#Banner none
# override default of no subsystems
<%- if sshd_sftp_subsystem.to_s.empty? then %>
Subsystem sftp /usr/libexec/sftp-server
<%- else %>
Subsystem sftp <%= sshd_sftp_subsystem %>
<%- end %>
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
<%- unless sshd_allowed_users.to_s.empty? then -%>
AllowUsers <%= sshd_allowed_users -%>
<%- end -%>
<%- unless sshd_allowed_groups.to_s.empty? then %>
AllowGroups <%= sshd_allowed_groups %>
<%- end %>
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes256-ctr
MACs hmac-sha1
<%- end -%>
<%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %>
<%- end %>

View file

@ -171,7 +171,7 @@ X11Forwarding no
<%- end %> <%- end %>
#X11DisplayOffset 10 #X11DisplayOffset 10
#X11UseLocalhost yes #X11UseLocalhost yes
#PrintMotd yes PrintMotd <%= sshd_print_motd %>
#PrintLastLog yes #PrintLastLog yes
#TCPKeepAlive yes #TCPKeepAlive yes
#UseLogin no #UseLogin no
@ -208,9 +208,11 @@ AllowUsers <%= sshd_allowed_users %>
AllowGroups <%= sshd_allowed_groups %> AllowGroups <%= sshd_allowed_groups %>
<%- end %> <%- end %>
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes256-ctr
MACs hmac-sha1
<%- end -%>
<%- unless sshd_tail_additional_options.to_s.empty? then %> <%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %> <%= sshd_tail_additional_options %>
<%- end %> <%- end %>

View file

@ -147,7 +147,7 @@ X11Forwarding no
<%- end %> <%- end %>
#X11DisplayOffset 10 #X11DisplayOffset 10
#X11UseLocalhost yes #X11UseLocalhost yes
#PrintMotd yes PrintMotd <%= sshd_print_motd %>
#PrintLastLog yes #PrintLastLog yes
#TCPKeepAlive yes #TCPKeepAlive yes
#UseLogin no #UseLogin no
@ -184,6 +184,11 @@ AllowGroups <%= sshd_allowed_groups %>
# AllowTcpForwarding no # AllowTcpForwarding no
# ForceCommand cvs server # ForceCommand cvs server
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes256-ctr
MACs hmac-sha1
<%- end -%>
<%- unless sshd_tail_additional_options.to_s.empty? then %> <%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %> <%= sshd_tail_additional_options %>
<%- end %> <%- end %>

View file

@ -0,0 +1,192 @@
# Package generated configuration file
# See the sshd(8) manpage for details
<%- unless sshd_head_additional_options.to_s.empty? then %>
<%= sshd_head_additional_options %>
<%- end %>
# What ports, IPs and protocols we listen for
<%- sshd_ports.each do |port| -%>
<%- if port.to_s == 'off' then -%>
#Port -- disabled by puppet
<% else -%>
Port <%= port %>
<% end -%>
<%- end -%>
# Use these options to restrict which interfaces/protocols sshd will bind to
<% for address in sshd_listen_address -%>
ListenAddress <%= address %>
<% end -%>
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# ...but breaks Pam auth via kbdint, so we have to turn it off
# Use PAM authentication via keyboard-interactive so PAM modules can
# properly interface with the user (off due to PrivSep)
#PAMAuthenticationViaKbdInt no
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 600
<%- unless sshd_permit_root_login.to_s.empty? then -%>
PermitRootLogin <%= sshd_permit_root_login -%>
<%- else -%>
PermitRootLogin without-password
<%- end -%>
<%- if sshd_strict_modes.to_s == 'yes' then -%>
StrictModes yes
<%- else -%>
StrictModes no
<%- end -%>
<%- if sshd_rsa_authentication.to_s == 'yes' then -%>
RSAAuthentication yes
<%- else -%>
RSAAuthentication no
<%- end -%>
<%- if sshd_pubkey_authentication.to_s == 'yes' then -%>
PubkeyAuthentication yes
<%- else -%>
PubkeyAuthentication no
<%- end -%>
<%- unless sshd_authorized_keys_file.to_s.empty? then -%>
AuthorizedKeysFile <%= sshd_authorized_keys_file %>
<%- else -%>
AuthorizedKeysFile %h/.ssh/authorized_keys
<%- end -%>
# For this to work you will also need host keys in /etc/ssh_known_hosts
<%- if sshd_rhosts_rsa_authentication.to_s == 'yes' then -%>
RhostsRSAAuthentication yes
<%- else -%>
RhostsRSAAuthentication no
<% end -%>
# Don't read the user's ~/.rhosts and ~/.shosts files
<%- if sshd_ignore_rhosts.to_s == 'yes' then -%>
IgnoreRhosts yes
<%- else -%>
IgnoreRhosts no
<% end -%>
# similar for protocol version 2
<%- if sshd_hostbased_authentication.to_s == 'yes' then -%>
HostbasedAuthentication yes
<%- else -%>
HostbasedAuthentication no
<% end -%>
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
<%- if sshd_permit_empty_passwords.to_s == 'yes' then -%>
PermitEmptyPasswords yes
<% else -%>
PermitEmptyPasswords no
<% end -%>
# Change to no to disable s/key passwords
<%- if sshd_challenge_response_authentication.to_s == 'yes' then -%>
ChallengeResponseAuthentication yes
<%- else -%>
ChallengeResponseAuthentication no
<%- end -%>
# To disable tunneled clear text passwords, change to no here!
<%- if sshd_password_authentication.to_s == 'yes' then -%>
PasswordAuthentication yes
<%- else -%>
PasswordAuthentication no
<%- end -%>
# To change Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#AFSTokenPassing no
#KerberosTicketCleanup no
# Kerberos TGT Passing does only work with the AFS kaserver
#KerberosTgtPassing yes
<%- if sshd_x11_forwarding.to_s == 'yes' then -%>
X11Forwarding yes
<%- else -%>
X11Forwarding no
<%- end -%>
X11DisplayOffset 10
KeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
#ReverseMappingCheck yes
<%- if sshd_sftp_subsystem.to_s.empty? then %>
Subsystem sftp /usr/lib/openssh/sftp-server
<%- else %>
Subsystem sftp <%= sshd_sftp_subsystem %>
<%- end %>
# 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'.
<%- if sshd_use_pam.to_s == 'yes' then -%>
UsePAM yes
<%- else -%>
UsePAM no
<%- end -%>
HostbasedUsesNameFromPacketOnly yes
<%- if sshd_tcp_forwarding.to_s == 'yes' then -%>
AllowTcpForwarding yes
<%- else -%>
AllowTcpForwarding no
<%- end -%>
<%- if sshd_agent_forwarding.to_s == 'yes' then -%>
AllowAgentForwarding yes
<%- else -%>
AllowAgentForwarding no
<%- end -%>
ChallengeResponseAuthentication no
<%- unless sshd_allowed_users.to_s.empty? then -%>
AllowUsers <%= sshd_allowed_users -%>
<%- end -%>
<%- unless sshd_allowed_groups.to_s.empty? then %>
AllowGroups <%= sshd_allowed_groups %>
<%- end %>
PrintMotd <%= sshd_print_motd %>
<%- unless sshd_tail_additional_options.to_s.empty? then %>
<%= sshd_tail_additional_options %>
<%- end %>
<%- if sshd_hardened_ssl.to_s == 'yes' then -%>
Ciphers aes128-ctr
MACs hmac-sha1
<%- end %>