27 lines
785 B
Bash
27 lines
785 B
Bash
|
#!/bin/bash
|
|||
|
|
|||
|
set -euo pipefail
|
|||
|
|
|||
|
pubkeyfile="/root/.ssh/authorized_keys"
|
|||
|
separator="# backup-borg-begin DO NOT EDIT UNDER THIS LINE"
|
|||
|
mkdir -p "$DATA_DIR/pubkeys" "$DATA_DIR/.ssh"
|
|||
|
|
|||
|
# Create ssh key if not found
|
|||
|
if [ ! -e "$DATA_DIR/.ssh/borg-client" ] ; then
|
|||
|
ssh-keygen -f "$DATA_DIR/.ssh/borg-client" -C "SSH key for backup trigger" -P ''
|
|||
|
fi
|
|||
|
|
|||
|
# Remove separator and automated lines if found
|
|||
|
if [ -n "$(grep "$separator" "$pubkeyfile")" ] ; then
|
|||
|
sed -i "/$separator/,//d" "$pubkeyfile"
|
|||
|
fi
|
|||
|
|
|||
|
# Place separator back
|
|||
|
echo "$separator" >> "$pubkeyfile"
|
|||
|
|
|||
|
# Foreach borg server key
|
|||
|
while read serverkey ; do
|
|||
|
# Add authorized_keys line
|
|||
|
echo "command=\"$DOCKER_DIR/script-sauvegarde.sh $serverkey\" $(cat "$DATA_DIR/pubkeys/$serverkey")" >> "$pubkeyfile"
|
|||
|
done < <(ls "$DATA_DIR/pubkeys")
|