dotfiles/.local/bin/new_key

28 lines
837 B
Bash
Executable File

#! /bin/bash --
set -e
usage () {
printf 'USAGE:\n\t%s DOMAIN NAME USER\n' "${0}"
}
domain="${1-}" # ex. nosu
name="${2-}" # ex. bastion
user="${3-}" # ex. root
[ -z "${domain-}" ] && { echo "Missing domain (1st argument)"; usage; exit 1; }
[ -z "${name-}" ] && { echo "Missing name (2nd argument)"; usage; exit 2; }
[ -z "${user-}" ] && { echo "Missing user (3rd argument)"; usage; exit 3; }
conn="${domain-}_${name-}_${user-}"
if [ -f ~/.ssh/"${domain-}"/"${conn-}" ]; then
echo "File already created, exiting."
exit 1
fi
echo "COPY THIS PASSWORD, IT WILL ONLY BE SHOWN ONCE"
pw="$(keepassxc-cli diceware --words 6 | tr ' ' '_')_A.1"
mkdir -p ~/.ssh/"${domain-}"/
ssh-keygen -q -t ed25519 -a 5 -N "${pw-}" -f ~/.ssh/"${domain-}"/"${conn-}" -C "tosuman@archtosu->${user-}@${conn-}"
echo "${pw-}"
echo -e "\033[32mSUCCESS\033[m"