Fix typo
[mirror/dsa-puppet.git] / modules / ssh / templates / sshd_config.erb
index 6828606..58f783f 100644 (file)
@@ -4,16 +4,9 @@
 ##
 
 Port 22
-<%= extraports = case @fqdn
-                        when "paradis.debian.org" then "
-ListenAddress 0.0.0.0:22
-ListenAddress [::]:22
-ListenAddress 5.153.231.31:443
-ListenAddress [2001:41c8:1000:21::21:31]:443
-"
-                 end
-extraports
-%>
+<% @extraports.each do |port| -%>
+ListenAddress <%= port %>
+<% end -%>
 # Use these options to restrict which interfaces/protocols sshd will bind to
 Protocol 2
 
@@ -21,6 +14,14 @@ HostKey /etc/ssh/ssh_host_rsa_key
 <%- if has_variable?("has_etc_ssh_ssh_host_ed25519_key") && @has_etc_ssh_ssh_host_ed25519_key -%>
 HostKey /etc/ssh/ssh_host_ed25519_key
 <% end %>
+<% if classes.include?("roles::ssh_upload") -%>
+# On ssh upload hosts we have many clients doing ssh connections to us.
+# sshd has - by default - a limit of 10 on the number of currently
+# unauthenticated (or not yet authenticated) connections.  Raise that limit.
+MaxStartups 100:30:200
+<% end %>
+
+LogLevel VERBOSE
 
 # Authentication:
 PermitRootLogin without-password
@@ -37,10 +38,32 @@ Subsystem sftp /usr/lib/openssh/sftp-server
 
 UsePAM yes
 
-AuthorizedKeysFile /etc/ssh/userkeys/%u /var/lib/misc/userkeys/%u /etc/ssh/userkeys/%u.more
+AuthorizedKeysFile /etc/ssh/userkeys/%u /var/lib/misc/userkeys/%u /etc/ssh/userkeys/%u.more /etc/ssh/puppetkeys/%u
 
 PasswordAuthentication no
 
+<%=
+  allnodeinfo = scope.lookupvar('deprecated::allnodeinfo')
+  out = ''
+  settings = '#  Banner "You are coming from a debian.org host."'
+  allnodeinfo.keys.sort.each do |node|
+      next unless allnodeinfo[node].has_key?('ipHostNumber')
+      out += "# Match Address "
+      out += allnodeinfo[node]['ipHostNumber'].collect do |ipnum|
+          if ipnum =~ /:/
+              "#{ipnum}/128"
+          else
+              "#{ipnum}/32"
+          end
+      end.join(',')
+      out += " # #{node}"
+      out += "\n"
+      out += settings
+      out += "\n\n"
+  end
+  out
+%>
+
 Match Group sftponly
   AllowStreamLocalForwarding no
   AllowTCPForwarding no