diff options
| author | Shulhan <ms@kilabit.info> | 2022-07-01 00:09:12 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-07-25 19:29:22 +0700 |
| commit | e5d68bdf0d8e73160bbb270eb730b0f5ea441803 (patch) | |
| tree | 82a1df4139d338553063c9cf1b4b7a03a86342d9 | |
| parent | 96a26cb01a019ca13b8054448373ac6700792cd4 (diff) | |
| download | compute-archlinux-image-builder-e5d68bdf0d8e73160bbb270eb730b0f5ea441803.tar.xz | |
all: use drop-ins replacement for configuring ssh server
Using this method give more flexibility to user that need to build
image with custom SSH server configuration.
| -rwxr-xr-x | build-arch-gce | 10 | ||||
| -rw-r--r-- | sys/etc/ssh/sshd_config | 116 |
2 files changed, 121 insertions, 5 deletions
diff --git a/build-arch-gce b/build-arch-gce index 81b938a..a1db33c 100755 --- a/build-arch-gce +++ b/build-arch-gce @@ -110,6 +110,10 @@ echo '-- Configuring journald.' mkdir -p $mount_dir/etc/systemd/journald.conf.d cp ./sys/etc/systemd/journald.conf.d/00-google.conf $mount_dir/etc/systemd/journald.conf.d/ +## Disable password authentication and root login on SSH server. +echo '-- Configuring ssh.' +cp ./sys/etc/ssh/sshd_config $mount_dir/etc/ssh/ + arch-chroot -- "$mount_dir" /bin/bash -s <<-'EOS' set -eEuo pipefail trap 'echo "Error: \`$BASH_COMMAND\` exited with status $?"' ERR @@ -121,11 +125,7 @@ arch-chroot -- "$mount_dir" /bin/bash -s <<-'EOS' echo '-- Running locale-gen.' locale-gen - echo '-- Configuring ssh.' - gawk -i assert -i inplace ' - /^#PasswordAuthentication / { $0 = "PasswordAuthentication no"; ++f1 } - /^#PermitRootLogin / { $0 = "PermitRootLogin no"; ++f2 } - { print } END { assert(f1 * f2 == 1, "f == 1") }' /etc/ssh/sshd_config + echo '-- Enabling sshd service.' systemctl --quiet enable sshd.service echo '-- Configuring pacman.' diff --git a/sys/etc/ssh/sshd_config b/sys/etc/ssh/sshd_config new file mode 100644 index 0000000..ad7e1f2 --- /dev/null +++ b/sys/etc/ssh/sshd_config @@ -0,0 +1,116 @@ +# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin + +# 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 override the +# default value. + +#Port 22 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_ecdsa_key +#HostKey /etc/ssh/ssh_host_ed25519_key + +# Ciphers and keying +#RekeyLimit default none + +# Logging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +PermitRootLogin no +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + +#PubkeyAuthentication yes + +# 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 +KbdInteractiveAuthentication no + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# 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 KbdInteractiveAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via KbdInteractiveAuthentication 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 KbdInteractiveAuthentication to 'no'. +UsePAM yes + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +PrintMotd no # pam does that +#PrintLastLog yes +#TCPKeepAlive yes +#PermitUserEnvironment no +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +#UseDNS no +#PidFile /run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/lib/ssh/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# PermitTTY no +# ForceCommand cvs server |
