#!/bin/bash # # Generate keypairs. # # This script is just a wrapper to easily generate keys for # automated systems. # # Generate a keypair, ssh version function genpair_ssh { echo "Make sure that $KEYDIR is atop of an encrypted volume." read -p "Hit ENTER to continue." prompt # TODO: programatically enter blank passphrase twice ssh-keygen -t dsa -f $WORK/id_dsa -C "root@$NODE" # Encrypt the result echo "Encrypting secret key into keyringer..." cat $WORK/id_dsa | keyringer_exec encrypt $BASEDIR $FILE echo "Encrypting public key into keyringer..." cat $WORK/id_dsa.pub | keyringer_exec encrypt $BASEDIR $FILE.pub echo "Done" } # Generate a keypair, gpg version function genpair_gpg { echo "Make sure that $KEYDIR is atop of an encrypted volume." read -s -p "Enter password for the private key: " passphrase # TODO: insert 279 random bytes gpg --homedir $WORK --gen-key --batch < " exit 1 elif [ ! -e "$KEYDIR" ]; then echo "Folder not found: $KEYDIR, leaving" exit 1 fi # Prepare mkdir -p $KEYDIR && chmod 700 $KEYDIR WORK="`mktemp -d $KEYDIR/genpair.XXXXXX`" if [ "$?" != "0" ]; then echo "Error setting up $WORK" exit 1 fi # Dispatch genpair_$KEYTYPE # Cleanup cd $CWD rm -rf $WORK