#!/bin/sh cleanup() { echo -n "removing temp gpg home... " rm -rf $FOO echo "done." } trap cleanup EXIT GPGID="$1" idchars=$(echo $GPGID | wc -m) if [ "$idchars" -ne 17 ] ; then echo "GPGID is not 16 characters ($idchars)." exit 1 fi FOO=$(mktemp -d) gpg --export-secret-key --export-options export-reset-subkey-passwd $GPGID | GNUPGHOME=$FOO gpg --import GNUPGHOME=$FOO gpg --edit-key $GPGID GNUPGHOME=$FOO gpg --export-secret-key $GPGID | openpgp2ssh $GPGID | ssh-add -c /dev/stdin