尝试添加GPG公钥时密钥服务器超时


66

我正在尝试添加公共密钥以使用CPG安装程序。但是我对此很陌生,但是我发现的每个命令都给了我同样的错误:

gpg --keyserver keyserver.ubuntu.com --recv-keys 94558F59
gpg: requesting key 94558F59 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

我似乎怎么可能在某种形式的封锁背后,这使得无法建立与密钥服务器的连接。我调查了许多OP问题,并尝试了所有可以找到的命令,但没有任何效果。有人以前有这个问题吗?


您是否尝试过使用其他密钥服务器?hkp://subkeys.pgp.net或hkp://pgp.mit.edu:11371
jasonwryan

@jasonwryan香港专业教育学院尝试了pgp.mit.edu,但没有hkp://是重要的使用?我不这么认为,但值得为我努力
桑德·范德泽夫

使用完整的地址和备用端口...
jasonwryan

@jasonwryan我还是?:pgp.mit.edu:连接超时gpgkeys:HTTP提取错误7:无法连接:连接超时gpg:找不到有效的OpenPGP数据。gpg:已处理的总数:0
Sander Van der Zeeuw

3
gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59为我工作...
jasonwryan

Answers:


112

这通常是由防火墙阻止端口引起的11371。您可以取消阻止防火墙中的端口。如果您无权访问防火墙,则可以:

  1. 强制它使用端口80而不是11371

    gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 94558F59
  2. 或者

    • 从密钥服务器中找到并打开密钥。
    • 将其内容复制到文本文件中。
    • 转到系统工具>首选项>软件源>身份验证>添加密钥,然后选择创建的文本文件。对于Ubuntu 14.04和更高版本,请尝试:软件中心->编辑->软件源->身份验证->导入密钥文件

5
gpg --import key.txt如果您需要通过命令行FYI导入。
Banjer 2014年

1
sks-keyservers.net/i下载密钥供参考-Lakshmi
Narayanan

2
支持其他方式!在Ubuntu 14.04和更高版本上,它是从Software Center -> Edit -> Software Sources -> Authentication -> Import key file
Roy Ling

这解决了我的问题,安装了rvm的密钥。以下呼叫已为我挂起:从hkp服务器keys.gnupg.net请求密钥D39DC0E3
mdgrech 2016年

4
“从密钥服务器中找到并打开密钥。” 没有人提到的是如何做到的。就我而言,有问题的密钥在gpg.mit.edu上。好吧,很简单,只需转到pgp.mit.edu并将密钥粘贴到Search String字段中即可!错误。您必须知道魔术的秘密:在密钥之前加上0x。如果键为0F571F6C,则必须搜索0x0F571F6C,这绝不是显而易见的。
本·约翰逊

19

sudo gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys SOMEKEY


6
sudo是没有必要的,
除此之外

4
我在一个小时前就进行了这项工作,添加此行可以为我解决问题。我明确指定端口80是有区别的。我还明确指定了协议。您可能不需要sudo,这也许是对的,但是我的回答确实有一些相关信息,您不觉得吗?哦,您的答案也是正确的。
Victor Piousbox 2013年

5
删除sudo,答案是正确的。
jasonwryan 2013年

4
是否需要从公共密钥服务器接收密钥?我不这么认为……
jasonwryan

2
如答案中所述添加hkp://确实对我有用。
barryhunter '16


7

尝试GPG在代理后面添加密钥时遇到了相同的问题。解决我的问题的方法是在命令中添加--keyserver-options

sudo apt-key adv --keyserver-options http-proxy=http://USER:PASSWORD@PROXY_URL:PORT/ --keyserver keyserver.ubuntu.com --recv-keys GPG_KEY

1

尝试从另一台服务器获取密钥(为我工作):

gpg --keyserver hkp://keys.gnupg.net --recv-keys 94558F59

要么

gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59


0

我在针对ubuntu 14.04映像运行ansible部署的两个相同盒子中的一个上看到了这一点。实际上,它以前曾奏效,app-infra-1但在某个时候它开始失败。它成功app-infra-2重新创建的事实表明它是对的损坏app-infra-1或检测和报告中的错误apt-key adv

我尝试使用删除密钥,apt-key del但仍然出现相同的错误。

changed: [app-infra-2] => {"changed": true, "item": "", "repo": "ppa:webupd8team/java", "state": "present"}
failed: [app-infra-1] => {"cmd": "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 7B2C3B0889BF5709A105D03AC2518248EEA14886", "failed": true, "item": "", "rc": 2}
stderr: gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

stdout: Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.2zqQuFdBjg --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/puppetlabs-keyring.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 7B2C3B0889BF5709A105D03AC2518248EEA14886

msg: gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

最后,由于它是虚拟机,所以我的解决方案是使用重建它vagrant


0

对我来说,需要将ENV语句添加到我的docker文件中。例如

ENV  http_proxy "http://[yourproxy]:[port]/"
ENV  https_proxy "http://[yourproxy]:[port]/"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.