如何从防火墙后面安装gpg密钥?


13

我了解密钥服务器正在使用端口11371,但是在许多情况下,您不允许连接到该端口,并且无法添加

在许多情况下,您无法修改防火墙配置。

失败的示例命令

 gpg --keyserver keyserver.ubuntu.com --recv-keys 0A5174AF

您如何解决这个问题?

Answers:


15

一些关键服务器也响应端口80:

gpg --keyserver hkp://wwwkeys.de.pgp.net:80 --recv-keys 0A5174AF

由于hkp依赖于http,因此您也应该能够通过网络代理使用它。


2
Ubuntu的解决这个问题,现在的服务器也响应端口80上
索林

3
wwwkeys.de.pgp.net:80不再工作了。
BuZZ-dEE

1
hkp://p80.pool.sks-keyservers.net:80可以工作。
irritable_phd_syndrom '18

hkp://keys.gnupg.net:80
Trevor Boyd Smith,

11

就像是

gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 \
    --keyserver-options "timeout=10 http-proxy=$http_proxy" \
    --recv-keys B0F4253373F8F6F510D42178520A9993A1C052F8

决定性的部分是http-proxy=$http_proxy,例如可以替换http-proxy=http://corporate.proxy.test:8765


2
重要的是要注意标志的顺序在这里很重要。如果您放--recv-keys之前--keyserver-options,将会看到类似以下的错误:gpg: Note: '--keyserver-options' is not considered an option gpg: "--keyserver-options" not a key ID: skipping gpg: "timeout=10 http-proxy=http://fooproxy:8080" not a key ID: skipping
玛尼

1
手册页指出keyserver-options可以用逗号或空格定界,但是我发现在用空格定界时逗号是必需的,这会导致gpg使用错误。gpg版本2.0.22。喜欢:--keyserver-options "timeout=10,http-proxy=${http_proxy}"
Ed Randall

2

尝试这个

sudo apt-key adv --keyserver-options http-proxy="http://<username>:<password>@<proxy_server_addr>:<proxy_port>" --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys <key_to_import>

1
欢迎来到服务器故障!尽管从理论上讲这可以回答问题,但请在命令周围提供上下文,以便其他人可以知道应该做什么以及为什么要这样做。-使用代理通常是一个很好的解决方案。
HBruijn 2015年

1

只是想在这里添加一些注释。

gpg的手册页指出,--keyserver-options "http-proxy=foo"将会覆盖http_proxy环境变量,但至少要针对...

gpg --version gpg (GnuPG) 2.1.15 libgcrypt 1.7.9

它无法选择http_proxy环境变量(或HTTP_PROXY),但确实接受了--keyserver-options解决方案。


您能提供这个网站的链接吗?我怀疑选项开关会覆盖proxy变量,但仅适用于此命令。这样,http_proxy变量将保持不变。但是,如果忽略了http_proxy和no_proxy变量,则编程并不完美。
uav

我不明白为什么apt,Java和gpg无论如何都需要自己的代理定义。我认为它们应该使用默认的环境变量!有一个技巧。只需创建一个空的/etc/apt/apt.conf。大声笑,谁来弥补?
uav
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.