4
Look to Subj:如何在不使用本地存儲(在〜/ .gpg下)的情況下從gpg私有公鑰獲取公鑰?如何在不使用本地存儲(在〜/ .gpg下)的情況下從gpg私有公鑰獲取公鑰?
該解決方案不能滿足要求:
$ gpg --import priv.key $ gpg --export $KEYID >pub.key $ gpg --delete-secret-and-public-key $KEYID
Look to Subj:如何在不使用本地存儲(在〜/ .gpg下)的情況下從gpg私有公鑰獲取公鑰?如何在不使用本地存儲(在〜/ .gpg下)的情況下從gpg私有公鑰獲取公鑰?
該解決方案不能滿足要求:
$ gpg --import priv.key $ gpg --export $KEYID >pub.key $ gpg --delete-secret-and-public-key $KEYID
我不明白你爲什麼不快樂與你已經想出瞭解決方案,但如果由於某種原因你真的想避免搞亂你的個人鑰匙扣,我可以提供別的東西:
gtmp=$(mktemp -d)
gpg --homedir $gtmp --import key
gpg --homedir $gtmp --export key > pub.gpg
rm -rf $gtmp
或者作爲一種方便的BASH功能:
# Requires keyfile as 1st argument; optional 2nd argument is output file
gpg_priv_to_pub(){
g=$(mktemp -d)
infile=$1
[[ $# > 1 ]] && outfile=$2 || outfile=${1%.*}_pub.gpg
gpg --homedir $g --import "$infile" 2>/dev/null
KEYID=$(gpg --homedir $g -k --with-colons | awk -F: '/^pub/{print $5}')
gpg --homedir $g --export $KEYID > "$outfile"
rm -rf $g
echo "Public key $KEYID extracted from '$infile' and saved to '$outfile'"
}