pgp - 如何在不使用本地存储(在 ~/.gpg 下)的情况下从 gpg 中的私有(private)获取公钥?

标签 pgp gnupg

查看Subj:如何在不使用本地存储(在〜/.gpg下)的情况下从gpg中的私有(private)获取公钥?

此解决方案不满足要求:

$ gpg --import priv.key
$ gpg --export $KEYID >pub.key
$ gpg --delete-secret-and-public-key $KEYID

最佳答案

我不明白你为什么对你已经提出的解决方案不满意,但如果出于某种原因你真的想避免弄乱你的个人 key 圈,我可以提供其他东西:

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'"
  }

关于pgp - 如何在不使用本地存储(在 ~/.gpg 下)的情况下从 gpg 中的私有(private)获取公钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7661500/

相关文章:

security - PGP 和 SMIME 之间的区别

java - 使用 Bouncing CaSTLe 的 PGP 加密文件无法使用 PGP 命令行解密

ruby-on-rails - GPGME Passphrase 提示问题(Ruby)

python gnupg.GPG 没有这样的文件或目录

bash - 解密目录中的多个 OpenPGP 文件

javascript - JavaScript 中的 PGP 加密

Go - Golang openpg - 创建 key 对并创建签名

java - 无法 gpg 解密 BouncyCaSTLePGP 加密消息

encryption - 如何制作自动信任gpg公钥?

gnupg - gpg : can't connect to the agent: IPC connect call failed