pubkey.gpg
当给定一个带有保护的公共 GnuPG 密钥的文件时,即使用以下命令创建的文件 ( ):
gpg -r 0xDEADBEEF --export --armored > pubkey.gpg
在不将其导入到我的钥匙环的情况下,获取该文件中的指纹等信息的最佳方法是什么?
到目前为止我发现的最好的方法(但我并不满意)是:
gpg --dry-run --import pubkey.gpg
自然,我查阅了 gpg 手册页,但没有找到明显的解决方案。
答案1
我不知道 gpg 是否有这样的选项,但是这里有一个从密钥文件中提取信息的更灵活的解决方法:
mkdir temp-gnupg-dir
export GNUPGHOME=temp-gnupg-dir
gpg --import pubkey.gpg
gpg --list-keys
rm -r temp-gnupg-dir
GNUPGHOME
您可以将其传递--homedir=temp-gnupg-dir
给每个 gpg 调用,而不是环境变量。
答案2
要打印磁盘上的装甲密钥的指纹而不导入它,只需使用--with-fingerprint
:
> gpg --with-fingerprint jm3.asc
pub 1024R/9112BC51 1996-02-05 john manoogian <jm3@*>
Key fingerprint = C9 DC 27 29 0E 1A DB 50 21 C8 64 08 15 29 41 86
uid john manoogian <jm3@foo...
uid john manoogian <jm3@bar...
uid john manoogian <jm3@baz...
uid john manoogian <jm3@qux...
瞧!
答案3
您可以查看 Kazu Yamamoto 的 PGP 数据包可视化工具,它显示 OpenPGP(RFC 4880)和 PGP 版本 2(RFC 1991)的数据包格式。
获取并编译:
git clone http://github.com/kazu-yamamoto/pgpdump
cd pgpdump
./configure --prefix=/usr/local/ && make && sudo make install
使用起来更加简单:
pgpdump pubkey.gpg
此站点上还有一个可用的 cgi-bin 接口:http://www.pgpdump.net/cgi-bin/pgpdump
答案4
还有更简单的解决方案(针对 GnuPG 2.2.27 测试):
gpg pubkey.gpg
或者,机器可读的结果(@jm3 答案的一些升级):
gpg --with-fingerprint --with-colons pubkey.gpg