问题 1:根本没有命中代理

问题 1:根本没有命中代理

文档中提供的解决方案似乎实际上不起作用。文档中提供的解决方案:

为了~/.gnupg/gpg.conf使用 HTTP 密钥服务器并遵守环境变量http_proxy,我使用的代理是一种特殊代理,除了源 IP 之外不需要任何身份验证。太棒了!

keyserver http://http-keys.gnupg.net
keyserver-options honor-http-proxy verbose

检查我的环境:

$ echo $http_proxy
http://proxy.name.com:8080

通过其他方式检查代理:

$ telnet proxy.name.com 8080
Connected to proxy.name.com.
Escape character is '^]'.
^]
telnet> close
Connection closed.

strace -f gpg --recv-keys 0xABCDEF表明它正在忽略代理并尝试直接连接但没有成功。

有任何想法吗?

答案1

是的!我找到了实现这个功能的神奇组合。我会在这里记录下来,以便未来的我(和其他人)可以找到一些关于如何在公司防火墙和相关代理后面运行 GPG 的潜在有用信息。

问题 1:根本没有命中代理

导出您的环境变量。是的,这是一个新手错误。哎呀。

问题 2:gpgkeys:http 获取错误 60

HTTP 到 HTTPS 重定向。手动将私有 CA 数据添加到我的主机配置中也可能解决这个问题。我不喜欢这样做,原因有很多,主要包括“你信任谁?”和“他们能用这种信任做什么?”通过使用已知的不受信任的 HTTP 连接,我可以清楚地表明我对该连接的信任程度。

使用带有 HTTP 的正确 SKS 服务器给了我这个不太有用的结果:

$ gpg --verbose --keyserver=http://na.pool.sks-keyservers.net --keyserver-options=debug --recv-keys 0x1234567
... lots of nice debug data showing that all the connections are working great ...
gpgkeys: no key data found for http://na.pool.sks-keyservers.net/

问题 3:未找到关键数据

谷歌引导我这个 docker 问题 他们遇到了非常相似的问题。SKS 池包含许多服务器,这些服务器可能并非全部在相同的端口上响应。他们建议使用http://p80.pool.sks-keyservers.net/

$ gpg --verbose --keyserver=http://p80.pool.sks-keyservers.net --keyserver-options=debug --recv-keys 0x1234567
... connections still working fine via proxy ...
gpgkeys: no key data found for http://p80.pool.sks-keyservers.net/

看起来在 p80 池上使用 HTTP 协议无法真正搜索到关键数据。尝试使用 HKP 协议:

$ gpg --verbose --keyserver=hkp://p80.pool.sks-keyservers.net --keyserver-options=debug --recv-keys 0x1234567
... connection shows the proxy hangs connecting to port 11371 ...

啊,好的。我想我的特殊代理无法像以前一样连接到任何旧端口。我必须稍后修复它...与此同时,尝试通过 TCP 端口 80 进行 HKP:

$ gpg --verbose --keyserver=hkp://p80.pool.sks-keyservers.net:80 --keyserver-options=debug --recv-keys
... connection shows an HTTP GET
GET http://p80.pool.sks-keyservers.net:80/pks/lookup?op=get&options=mr&search=0x1234567 HTTP/1.1
Host: p80.pool.sks-keyservers.net
...
gpg: pub  1024D/1234567

成功!HKP 通过 TCP 端口 80 运行正常!

我拿到了钥匙!修复我的配置以默认使用此工作配置:

$ vi ~/.gnupg/gpg.conf
keyserver hkp://p80.pool.sks-keyservers.net:80

相关内容