为什么当我请求密钥时 pgp 密钥服务器没有响应?

为什么当我请求密钥时 pgp 密钥服务器没有响应?

我尝试使用各种密钥服务器来运行 Linux 命令行(Arch Linux 内核 4.18.16 上的 bash 4.4.23):

$ gpg -v --keyserver subkeys.pgp.net --recv-keys F434104235DA97EB
gpg: using character set 'utf-8'
gpg: keyserver receive failed: Server indicated a failure
$ gpg -v --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F434104235DA97EB
gpg: using character set 'utf-8'
gpg: keyserver receive failed: Server indicated a failure
$ gpg --debug-level 9 --keyserver  hkp://keyserver.ubuntu.com:80 --recv-keys F434104235DA97EB
gpg: enabled debug flags: packet mpi crypto filter iobuf memory cache memstat trust ipc clock lookup extprog
gpg: DBG: [not enabled in the source] start
gpg: DBG: chan_3 <- # Home: /home/user/.gnupg
gpg: DBG: chan_3 <- # Config: /home/user/.gnupg/dirmngr.conf
gpg: DBG: chan_3 <- OK Dirmngr 2.2.11 at your service
gpg: DBG: connection to the dirmngr established
gpg: DBG: chan_3 -> GETINFO version
gpg: DBG: chan_3 <- D 2.2.11
gpg: DBG: chan_3 <- OK
gpg: DBG: chan_3 -> KEYSERVER --clear hkp://keyserver.ubuntu.com:80
gpg: DBG: chan_3 <- OK
gpg: DBG: chan_3 -> KS_GET -- 0xF434104235DA97EB
gpg: DBG: chan_3 <- ERR 167772379 Server indicated a failure <Dirmngr>
gpg: keyserver receive failed: Server indicated a failure
gpg: DBG: chan_3 -> BYE
gpg: DBG: [not enabled in the source] stop
gpg: keydb: handles=0 locks=0 parse=0 get=0
gpg:        build=0 update=0 insert=0 delete=0
gpg:        reset=0 found=0 not=0 cache=0 not=0
gpg: kid_not_found_cache: count=0 peak=0 flushes=0
gpg: sig_cache: total=0 cached=0 good=0 bad=0
gpg: random usage: poolsize=600 mixed=0 polls=0/0 added=0/0
              outmix=0 getlvl1=0/0 getlvl2=0/0
gpg: rndjent stat: collector=0x0000000000000000 calls=0 bytes=0
gpg: secmem usage: 0/32768 bytes in 0 blocks
$ 

我尝试了 Web 界面https://pgp.surfnet.nl/.它回应

暂停服务

由于维护停机或容量问题,服务器暂时无法满足您的请求。请稍后重试。

我尝试了 Web 界面https://pgp.mit.edu. 它回应:

代理错误

代理服务器从上游服务器收到无效响应。代理服务器无法处理请求 GET /pks/lookup。

原因:从远程服务器读取时出错

我尝试了 Web 界面https://pgp.key-server.io回复是:

Hint! Double-check if the keyserver is up and running at the expected address:port (127.0.0.1:11369).
cURL error 52: Empty reply from server
#0 /var/www/pgp.key-server.io/vendor/guzzlehttp/guzzle/src/RequestFsm.php(103): GuzzleHttp\Exception\RequestException::wrapException(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Ring\Exception\ConnectException))
#1 /var/www/pgp.key-server.io/vendor/guzzlehttp/guzzle/src/RequestFsm.php(132): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
#2 /var/www/pgp.key-server.io/vendor/react/promise/src/FulfilledPromise.php(25): GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)
#3 /var/www/pgp.key-server.io/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php(55): React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
#4 /var/www/pgp.key-server.io/vendor/guzzlehttp/guzzle/src/Message/FutureResponse.php(43): GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
#5 /var/www/pgp.key-server.io/vendor/guzzlehttp/guzzle/src/RequestFsm.php(134): GuzzleHttp\Message\FutureResponse::proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
#6 /var/www/pgp.key-server.io/vendor/guzzlehttp/guzzle/src/Client.php(165): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
#7 /var/www/pgp.key-server.io/vendor/jenssegers/proxy/src/Adapter/Guzzle/GuzzleAdapter.php(54): GuzzleHttp\Client->send(Object(GuzzleHttp\Message\Request))
#8 /var/www/pgp.key-server.io/vendor/jenssegers/proxy/src/Proxy.php(80): Proxy\Adapter\Guzzle\GuzzleAdapter->send(Object(Symfony\Component\HttpFoundation\Request), 'http://127.0.0....')
#9 /var/www/pgp.key-server.io/src/ctubio/HKPProxy/Keyserver/Router.php(46): Proxy\Proxy->to('http://127.0.0....')
#10 /var/www/pgp.key-server.io/src/ctubio/HKPProxy/Keyserver/Router.php(14): ctubio\HKPProxy\Keyserver\Router::getHKPResponse('/pks/lookup?sea...')
#11 /var/www/pgp.key-server.io/src/ctubio/HKPProxy/Keyserver.php(19): ctubio\HKPProxy\Keyserver\Router::getResponse()
#12 /var/www/pgp.key-server.io/pub/php-proxy-keyserver.php(14): ctubio\HKPProxy\Keyserver::getResponse()
#13 {main}

其他各种密钥服务器对我请求的任何密钥都说“未找到结果”。

  • 发生了什么事?这只是暂时的问题吗?但为什么所有关键服务器会同时离线?
  • 这是否与我的连接阻止访问每个关键服务器有关(那么为什么我可以访问随后会失败的 Web 界面?)?
  • 是不是我在搜索无效字符串?我不这么认为;我搜索了许多不同的字符串,本例中的字符串(F434104235DA97EB)应该是签署了这个github 上的包...
  • 是不是我没有连接到正确的密钥服务器?

答案1

我尝试了你的命令,subkeys.pgp.net但遇到了同样的问题。我搜索了一下有关该密钥服务器的信息,除了有人抱怨它失败外,没有找到任何相关内容。keyserver.ubuntu.com不过对我来说还是有用的。

[编辑] 如上所述@blubberdiblubpool.sks-keyservers.net密钥服务器也消失了。请尝试以下方法之一:

  • hkps://keys.gnupg.net
  • hkps://keyserver.ubuntu.com
  • hkps://keys.openpgp.org

旧答案不再有效,但可能具有参考价值

根据有一个由其他密钥服务器组成的密钥服务器更可靠。这个是:pool.sks-keyservers.net。有关其的更多信息网页

我已尝试使用 gpool.sks-keyservers.net作为密钥服务器,并且该命令能够毫无问题地导入密钥。

因此,总结一下并回答您的问题:

  • 密钥服务器有时似乎不太可靠。也许这些密钥服务器现在已经过时且无人维护,它们可能暂时离线或死机。pool.sks-keyservers.net目前似乎功能正常且可靠,但这种情况可能会随着时间的推移而改变。
  • 这些密钥服务器的 Web 界面可能会在您的浏览器上呈现一个页面,但是,如果存储密钥的底层密钥服务器关闭,则密钥查找可能会失败,或者如果该服务器未与其他密钥服务器同步,则他们可能找不到密钥。

相关内容