Answers:
查找密钥服务器实际上可能不是问题,这就是错误提示。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 <richard@10gen.com>" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
可能是端口问题(这是我最后一次遇到公司防火墙问题),因此请尝试在标准HTTP端口(80)上执行此操作,看看是否可以解决问题:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
我遇到了同样的问题,因为我的机器位于公司代理后面。添加gpg --keyserver-option http-proxy
了把戏。看起来像:
sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10
如果您使用代理服务器(例如公司的代理服务器),那么唯一的方法可能是手动输入,这很简单。跑:
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
就在那里!
apt-key
:apt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
apt-key
手册页中说:“请注意,没有执行任何检查,因此如果不加注意地使用,很容易完全破坏apt-secure(8)基础结构。”这意味着您真的不想在没有保护的情况下进行操作。 SSL。更改为--fetch-keys https://…
,您应该是相当安全的。
--fetch-keys
选项对我失败,出现以下错误:https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol
https'不支持gpg:没有用于密钥服务器方案的处理程序https' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
此链接中提到的第二种方法对我有用。手动下载并添加密钥。该链接提供了逐步的过程来修复由于缺少密钥而发生的错误。
dig keyserver.ubuntu.com
?