使用 gpg 搜索密钥会导致密钥服务器故障

使用 gpg 搜索密钥会导致密钥服务器故障

以下简单命令失败

$  gpg --search-keys "hi"
gpg: error searching keyserver: Server indicated a failure
gpg: keyserver search failed: Server indicated a failure

可能hi与钥匙无关,但仍然......我不应该得到一个不存在错误?

因此我认为我滥用了gpg命令。

哦,我的版本是gpg (GnuPG) 2.2.27.

答案1

对我来说,“旧”GnuPG(当前为 v1.4.23)按预期工作:

$ /usr/bin/gpg --search-keys "hi"
gpg: searching for "hi" from hkp server pool.sks-keyservers.net
gpg: key "hi" not found on keyserver

gpg2我可以使用(2.2.27)重现您的问题:

$ /usr/bin/gpg2 --search-keys "hi"
gpg: error searching keyserver: Server indicated a failure
gpg: keyserver search failed: Server indicated a failure

我可以通过显式声明要使用的密钥服务器来修复该问题:

$ /usr/bin/gpg2 --keyserver pool.sks-keyservers.net --search-keys "hi"
gpg: data source: http://[2a03:4000:8:5c9:a86d:e5ff:fea9:7bc4]:11371
gpg: key "hi" not found on keyserver
gpg: keyserver search failed: Not found

看起来 gpg2 不喜欢旧的密钥服务器选项。从man gpg2

--keyserver name 此选项已弃用 - 请改用“dirmngr.conf”中的 --keyserver。

我不是 dirmngr 方面的专家,并且有关其 conf 文件的详细信息似乎没有在任何地方涵盖。我推测如果您不想每次都提供该选项,那么keyserver <preferred-keyserver>添加to 来永久修复 gpg2 行为可能就足够了。~/.gnupg/dirmngr.conf--keyserver

答案2

在我的系统上,GnuPG 的 dirmngr 默认通过 Tor 使用 DNS 解析。对我来说,dirmngr 的以下配置有效:

〜/.gnupg/dirmngr.conf

standard-resolver
no-use-tor
nameserver 8.8.8.8

然后,杀死该进程。它将自动重新启动:

$ pkill dirmngr

请注意,此配置可能比默认配置安全性较低。

相关内容