Посмотрите на Subj: Как получить открытый ключ из закрытого в gpg без использования локального хранилища (в ~/.gpg)?
Это решение не удовлетворяет требованиям:
$ gpg --import priv.key $ gpg --export $KEYID >pub.key $ gpg --delete-secret-and-public-key $KEYID