我下载了 GnuPG 1.4.19。在可执行文件中,有
gpgkeys_hkp.exe
,gpgkeys_finger.exe
和gpgkeys_ldap.exe
。
我发现三个可执行文件中的第一个是与公钥服务器通信所必需的。
gpgkeys_finger.exe
和gpgkeys_ldap.exe
?
答案1
这些是密钥服务器协议驱动程序,换句话说,它们实现了使用 GnuPG 访问密钥服务器的不同方式。就列出的协议而言,HKP 是当今常用的协议。Finger 协议可能在早期作为公司中的资源查找模式得到更广泛的使用,但仍然可用,如今公司通常会使用 LDAP 数据库来存储用户信息和验证凭据。
这些应用程序不打算手动执行,没有关于如何使用它们的文档。由于我自己对此很感兴趣,我gpgkeys_hkp
用一个小包装脚本(对于 Linux 系统,在 Windows 上你需要另一个)替换了它,拦截了实际二进制文件的输入:
#!/usr/bin/env sh
tee /tmp/gpgkeys_hkp.log | /usr/lib/gnupg/gpgkeys_hkp_
tee
将 STDIN 上的所有内容转储到/tmp/gpgkeys_hkp.log
,然后将相同的输入转发到重命名的实际gpgkeys_hkp
实现。搜索密钥[email protected]
会显示发送到密钥服务器驱动程序进行搜索的以下命令
# This is a GnuPG 1.4.19 keyserver communications file
VERSION 1
PROGRAM 1.4.19
SCHEME hkp
HOST pool.sks-keyservers.net
PATH /
COMMAND SEARCH
[email protected]
最后获取密钥
# This is a GnuPG 1.4.19 keyserver communications file
VERSION 1
PROGRAM 1.4.19
SCHEME hkp
HOST pool.sks-keyservers.net
PATH /
COMMAND GET
0x0D69E11F12BDBA077B3726AB4E1F799AA4FF2279
当你尝试在 Windows 上运行这些可能由于行尾编码不同而遇到麻烦(Windows 中为CRLF
/ ,Linux 中为/ ),但将这些内容保存为“UNIX”编码的文本文件并最终从这些文件中读取应该可以正常工作并显示结果:\r\n
LF
\n
gpgkeys_hkp <input.txt # on Linux/other unixoid systems
gpgkeys_hkp.exe <input.txt # for Windows