从装甲 gpg 公钥文件获取信息

从装甲 gpg 公钥文件获取信息

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

相关内容