25 lines
656 B
Bash
Executable File
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
|