sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 命令返回错误

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 命令返回错误

我正在尝试在 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

本文提到的第二种方法关联对我有用。手动下载密钥并添加。该链接提供了修复因缺少密钥而发生的错误的分步过程。

相关内容