我正在尝试在 Ubuntu 12 上安装 Mongodb,但是当我运行此命令时:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
返回了以下错误:
keyserver.ubuntu.com host not found
gpgkeys: HTTP fetch error 7: couldn't connect: no such file or directory
gpg:no valid openPGP data found
gpg: Total number processes :0
我关闭了 Iptables 上的防火墙,但它不起作用。有什么办法吗?
答案1
这可能实际上不是查找密钥服务器的问题,错误表明了这一点。该apt-key
命令调用gpg
,然后尝试访问密钥服务器。显然,gpg
如果密钥服务器没有您请求的密钥,则将gpg
其误解为“未找到主机”,这存在一个错误。
无响应的密钥服务器很可能会做同样的事情,并且我见过密钥服务器被阻止的环境(企业防火墙规则),因此如果存在您无法访问的上游防火墙,这可能是您的根本原因。
仅供参考,密钥就在那里,并且密钥服务器目前正在响应我:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.rh1myoBdSE --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: key 7F0CEB10: "Richard Kreuter <[email protected]>" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
可能是端口出了问题(上次我遇到公司防火墙问题时也出现过这种情况),因此请尝试在标准 HTTP 端口(80)上执行此操作,看看是否能解决问题:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
答案2
我遇到了同样的问题,因为我的机器位于公司代理后面。添加gpg --keyserver-option http-proxy
成功了。如下所示:
sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10
答案3
如果您使用代理,例如公司的代理,那么可能唯一的方法就是手动输入,这非常简单。运行:
sudo apt-get update
并获取 pub_key 的 id。然后转到http://keyserver.ubuntu.com/并以十六进制形式搜索密钥,例如,如果密钥是7936A783B
,则搜索0x7936A783B
。单击 pup 链接并复制密钥内容并将其保存到 txt 文件中。转到终端并导航到文件并运行:
sudo apt-key add key.txt
如果成功,你会得到一个简单的OK
反馈。当所有键都添加完成后,你可以运行:
sudo apt-get update
就这样!
答案4
本文提到的第二种方法关联对我有用。手动下载密钥并添加。该链接提供了修复因缺少密钥而发生的错误的分步过程。