以下简单命令失败
$ 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
请注意,此配置可能比默认配置安全性较低。