2024-11-22 09:57:33 +00:00

32 lines
1015 B
Bash
Executable File

#! /bin/bash
# selection menu
echo "Please select your key type to generate"
printf "1.) ed25519\n2.) rsa\n3.) ecdsa\n4.) dsa\n[default ed25519]:"
read opt
case $opt in
"ed25519"|1) TYPE="ed25519";;
"rsa"|2) TYPE="rsa";;
"ecdsa"|3) TYPE="ecdsa" BITS="-b 521";;
"dsa"|4) TYPE="dsa";;
*) echo "blank or unknown option choosing ed25519" && TYPE="ed25519";;
esac
# rsa bit selection
if [[ "$TYPE" == "rsa" ]]; then
echo "Please select RSA bits"
printf "1.) 4096\n2.) 2048\n3.) 1024\n[default 4096]:"
read opt
case $opt in
4096|1) BITS="-b 4096";;
2048|2) BITS="-b 2048";;
1024|3) BITS="-b 1024";;
*) echo "blank or unknown option choosing 4096" && BITS="-b 4096";;
esac
fi
# key generation
echo ""
echo "YOUR KEYS ARE BELOW. PLEASE TAKE A COPY OF THEM AS THEY WILL NOT PERSIST ONCE THIS TERMINAL IS CLOSED."
echo ""
echo /tmp/stderr{,.pub} | xargs -n 1 ln -sf /dev/stderr && yes | ssh-keygen -t ${TYPE} ${BITS} -N '' -qf /tmp/stderr > /dev/null