防火墙后面没有 gpg 密钥

use*_*817 13 ppa add-apt-repository gnupg keyserver

刚刚在这里偶然发现了这个封闭的线程: 运行 apt-get 时的 GPG 错误

同样的问题,Ubuntu 12.04 位于防火墙和代理后面。

我不认为这件事与给定主题重复。所以我在这个线程中重新打开这个问题。

我的输出:

root@musik-Aspire-7741:~# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 58B98E87
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-  keyring /tmp/tmp.tWVMhyIMYh --trustdb-name /etc/apt/trustdb.gpg --keyring     /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver     hkp://keyserver.ubuntu.com:80 --recv-keys 58B98E87
gpg: Key 58B98E87 of hkp Server keyserver.ubuntu.com request
?: keyserver.ubuntu.com: Connection refused
gpgkeys: HTTP fetch error 7: couldn't connect: Connection refused
gpg: No valid OpenPGP data found.
gpg: Total number processed: 0
Run Code Online (Sandbox Code Playgroud)

结论:gpghkp://keyserver.ubuntu.com:80不能通过 http 使用。

小智 10

在代理后面,http_proxy应该设置环境变量。这可以通过两种方式中的任何一种来完成。

1.apt.conf在/etc/apt目录中创建文件(如果不存在)并将以下行添加到其中。 Acquire::http::Proxy "http://user:password@server:port";
2.从终端使用以下命令简单地设置环境变量。
export http_proxy=http://user:password@server:port

最后一个小调整,在命令中添加 -E 选项以使用环境变量,如下所示
sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 58B98E87

  • -E 成功了 (2认同)

小智 3

如果您使用代理,则必须http_proxy在 Bash 中设置环境变量。最好的方法是使用 打开 root shell sudo bash

在这之后:

export http_proxy="http://xxx.yyy.zzz.www:abcd"
Run Code Online (Sandbox Code Playgroud)

然后添加存储库。