UDM-Persistent-SSH-Keys/99-ssh-keys.sh
Doug Goldstein 7d6d086ff3
ensure paths exists before writing keys
Ensure the target path exists before writing the keys so there's no errors for the user. Dropped a temp variable as well.
2023-02-26 11:46:54 -06:00

37 lines
870 B
Bash
Executable File

#!/bin/sh
# Get DataDir location
DATA_DIR="/mnt/data"
case "$(ubnt-device-info firmware || true)" in
1*)
DATA_DIR="/mnt/data"
;;
2*)
DATA_DIR="/data"
;;
3*)
DATA_DIR="/data"
;;
*)
echo "ERROR: No persistent storage found." 1>&2
exit 1
;;
esac
user_authorized_keys_file="$DATA_DIR/ssh/authorized_keys"
udm_authorized_keys_file="/root/.ssh/authorized_keys"
# if $DATA_DIR/ssh/authorized_keys is missing print error message
if [ ! -f "$user_authorized_keys_file" ]; then
echo "ERROR: $user_authorized_keys_file is missing"
exit 1
fi
# Reads the user file line by line and adds the key to the authorized_keys file
mkdir -p "$(dirname ${udm_authorized_keys_file})"
while IFS= read -r line || [ -n "$line" ]; do
echo $line >>$udm_authorized_keys_file
done <"$user_authorized_keys_file"
exit 0