ssh-keys/update-keys.sh
2022-02-16 17:05:02 +00:00

57 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
WORK_DIR=`mktemp -d`
RED=`tput setaf 1`
GREEN=`tput setaf 10`
YELLOW=`tput setaf 11`
PURPLE=`tput setaf 13`
RESET=`tput sgr0`
fancy_echo() {
local fmt="$1"; shift
# shellcheck disable=SC2059
printf "\n$fmt\n" "$@"
}
# check if tmp dir was created
if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
echo "Could not create temp dir"
exit 1
fi
# deletes the temp directory
function cleanup {
rm -rf "$WORK_DIR"
fancy_echo "${YELLOW}Deleted temp working directory $WORK_DIR${RESET}"
}
# register the cleanup function to be called on the EXIT signal
trap cleanup EXIT
if [[ -f "$HOME/.ssh/authorized_keys" ]]; then
cp -u "$HOME/.ssh/authorized_keys" "$HOME/.ssh/authorized_keys.bak"
cp -u "$HOME/.ssh/authorized_keys" "$WORK_DIR/authorized_keys.tmp"
else
touch "$WORK_DIR/authorized_keys.tmp"
fi
for file in ./*.pub
do
cat "$file" | tee -a "$WORK_DIR/authorized_keys.tmp"
done
# cp "$WORK_DIR/authorized_keys.tmp" "$WORK_DIR/authorized_keys.wip"
sort -u "$WORK_DIR/authorized_keys.tmp" > "$WORK_DIR/authorized_keys.wip"
# cat "$WORK_DIR/authorized_keys.wip"
if [[ ! -d "$HOME/.ssh" ]]; then
mkdir -p "$HOME/.ssh"
fi
cp "$WORK_DIR/authorized_keys.wip" "$HOME/.ssh/authorized_keys"