repo/images/rsync-ssh/root/entrypoint.d/ssh.sh
Daniel Berteaud e2fb9fc75d Store authorized_keys in /config
As sshd refused to use /tmp because it has too open permissions
2024-02-28 13:59:01 +01:00

25 lines
656 B
Bash
Executable File

#!/bin/sh
set -euo pipefail
# Else, sshd will refuse using authorized_keys
chmod 700 /config
for TYPE in rsa ecdsa ed25519; do
[ -e "/config/ssh_host_${TYPE}_key" ] || ssh-keygen -q -N "" -t ${TYPE} -f /config/ssh_host_${TYPE}_key
chmod 600 /config/ssh_host_${TYPE}_key
chmod 644 /config/ssh_host_${TYPE}_key.pub
done
rm -f /config/authorized_keys
OLD_IFS=${IFS}
IFS=$'\n'
for VAR in $(env | grep -E '^SSH_AUTH_KEY'); do
echo "Adding ssh key ${VAR}"
echo "${VAR}" | sed -E 's/^SSH_AUTH_KEY[^=]*=//' >> /config/authorized_keys
done
IFS=${OLD_IFS}
chmod 600 /config/authorized_keys
envsubst < /home/ssh/sshd_config.template > /tmp/sshd_config