install.fairie/home/private_dot_ssh/system/sshd_config.tmpl
2023-08-07 05:19:59 +00:00

132 lines
3.4 KiB
Cheetah

# TODO - Figure out difference between /private/etc/ssh and /etc/ssh on macOS
Include /etc/ssh/sshd_config.d/*.conf
Port {{ .host.ssh.port }}
AddressFamily inet
#ListenAddress 0.0.0.0
#ListenAddress ::
### Host keys
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
### Ciphers and keyring
#RekeyLimit default none
### Logging
#SyslogFacility AUTH
#LogLevel INFO
### Authentication
LoginGraceTime 60
{{ if ne .host.distro.family "windows" }}
PermitRootLogin no
{{ else }}
DenyGroups Administrators
{{ end }}
AllowUsers {{ .host.ssh.allowUsers }}
#StrictModes yes
MaxAuthTries 3
#MaxSessions 10
AuthenticationMethods publickey
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no
# Change to no to disable s/key passwords
ChallengeResponseAuthentication no
{{ if ne .host.distro.family "windows" }}
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
{{ end }}
# GSSAPI options
GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# 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
{{ if ne .host.distro.family "windows" }}
#AllowAgentForwarding yes
AllowTcpForwarding {{ .host.ssh.allowTCPForwarding }}
#GatewayPorts no
X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
ClientAliveInterval 60
ClientAliveCountMax 3
UseDNS no
# Experiment with this
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# pass locale information
AcceptEnv LANG LC_* FIG_*
AllowStreamLocalForwarding yes
# no default banner path
Banner /etc/ssh/banner
# override default of no subsystems
# TODO - Figure out how to detect the sftp path to place here. i.e. replicate the following Ansible logic
# using Go templating:
# - name: Find the path of the sftp-server executable
# find:
# paths: /usr
# file_type: file
# patterns: '*sftp-server'
# recurse: true
# register: sftp_executable
#Subsystem sftp {/{ sftp_executable.files[0].path | default('internal-sftp') }/}
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
{{ end }}