Skip to content

Instantly share code, notes, and snippets.

@netravnen
Last active May 1, 2022 18:37
Show Gist options
  • Save netravnen/43ebeeb711a2d630acdfa1830cbdc731 to your computer and use it in GitHub Desktop.
Save netravnen/43ebeeb711a2d630acdfa1830cbdc731 to your computer and use it in GitHub Desktop.
#!/bin/bash
read -s -p "$(date --utc +'%FT%T.%3NZ'): Enter Password: " SSH_KEY_PASSWORD
#OPTS="-q -C ${SSH_COMMENT} -P ${SSH_KEY_PASSWORD}"
OPTS="-q -N ${SSH_KEY_PASSWORD}"
SSH_DIR="$HOME/.ssh" ; if [ ! -d $SSH_DIR ] ; then mkdir -p $SSH_DIR ; chown -R $USER:$USER $SSH_DIR ; chmod -R 700 $SSH_DIR ; fi
SSH_FILE_PREFIX='id_'
SSH_FILE_SUFFIX=''
#FNAME=$(getent passwd $USER | cut -d':' -f5 | cut -d',' -f1)
#FNAME=${FNAME// /_}
#if [ -z "${FNAME}" ] ; then
# SSH_COMMENT="${FNAME}_${USER}@${HOSTNAME}_$(date --utc +'%FT%TZ')"
#else
# SSH_COMMENT="${USER}@${HOSTNAME}_$(date --utc +'%FT%TZ')"
#fi
#SSH_COMMENT="${USER}@${HOSTNAME}_$(date --utc +'%FT%TZ')"
#SSH_COMMENT_DSA="${SSH_FILE_PREFIX}dsa${SSH_FILE_SUFFIX}_${USER}@${HOSTNAME}_$(date --utc +'%FT%T.%3NZ')"
#SSH_COMMENT_ECDSA="${SSH_FILE_PREFIX}ecdsa${SSH_FILE_SUFFIX}_${USER}@${HOSTNAME}_$(date --utc +'%FT%T.%3NZ')"
SSH_COMMENT_RSA="${SSH_FILE_PREFIX}rsa${SSH_FILE_SUFFIX}_${USER}@${HOSTNAME}_$(date --utc +'%FT%T.%3NZ')"
SSH_COMMENT_ED25519="${SSH_FILE_PREFIX}ed25519${SSH_FILE_SUFFIX}_${USER}@${HOSTNAME}_$(date --utc +'%FT%T.%3NZ')"
#OPTS_DSA="-t dsa -b 1024 -f ${SSH_DIR}/${SSH_FILE_PREFIX}dsa${SSH_FILE_SUFFIX}"
#OPTS_ECDSA="-t ecdsa -b 521 -f ${SSH_DIR}/${SSH_FILE_PREFIX}ecdsa${SSH_FILE_SUFFIX}"
OPTS_RSA="-t rsa -b 16384 -f ${SSH_DIR}/${SSH_FILE_PREFIX}rsa${SSH_FILE_SUFFIX}"
OPTS_ED25519="-t ed25519 -b 519 -f ${SSH_DIR}/${SSH_FILE_PREFIX}ed25519${SSH_FILE_SUFFIX}"
for KEYTYPE in dsa rsa ecdsa ed25519 ; do
if [ -f ${SSH_DIR}/${SSH_FILE_PREFIX}${KEYTYPE}${SSH_FILE_SUFFIX} ] ; then
rm ${SSH_DIR}/${SSH_FILE_PREFIX}${KEYTYPE}${SSH_FILE_SUFFIX} ; fi
done
echo '' && \
#echo "$(date --utc +'%FT%T.%3NZ'): Generating DSA key with options '$OPTS_DSA'" && \
#ssh-keygen $OPTS -C $SSH_COMMENT_DSA $OPTS_DSA && \
#echo "$(date --utc +'%FT%T.%3NZ'): DSA key generated" && \
#echo "$(date --utc +'%FT%T.%3NZ'): Generating ECDSA key with options '$OPTS_ECDSA'" && \
#ssh-keygen $OPTS -C $SSH_COMMENT_ECDSA $OPTS_ECDSA && \
#echo "$(date --utc +'%FT%T.%3NZ'): ECDSA key generated" && \
echo "$(date --utc +'%FT%T.%3NZ'): Generating ED25519 key with options '$OPTS_ED25519'" && \
ssh-keygen $OPTS -C $SSH_COMMENT_ED25519 $OPTS_ED25519 && \
echo "$(date --utc +'%FT%T.%3NZ'): ED25519 key generated" && \
echo "$(date --utc +'%FT%T.%3NZ'): Generating RSA key with options '$OPTS_RSA'" && \
ssh-keygen $OPTS -C $SSH_COMMENT_RSA $OPTS_RSA && \
echo "$(date --utc +'%FT%T.%3NZ'): RSA key generated" && \
echo "$(date --utc +'%FT%T.%3NZ'): ALL KEYS GENERATED. EXITING SCRIPT!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment