错误:无法从密钥服务器获取 GPG 密钥

Anj*_*aul 5 keyserver lxc

我尝试启动lxc容器。但当我给予

sudo lxc-create -t download ubuntu -n web1
Run Code Online (Sandbox Code Playgroud)

它显示这个错误

错误:无法从密钥服务器获取 GPG 密钥

如何解决问题?

小智 6

在不知道您使用的 Ubuntu 版本以及 lxc-create 的版本的情况下,我将分别假设它是 20.04 和 4.0.6。

您可以在这里看到,默认情况下它将查看$DOWNLOAD_KEYSERVER环境变量,如果未设置,默认情况下它将使用hkp://pool.sks-keyservers.net.

如果你运行dig pool.sks-keyservers.net你可以看到它返回一个NXDOMAIN状态:

$ dig pool.sks-keyservers.net

; <<>> DiG 9.16.1-Ubuntu <<>> pool.sks-keyservers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 39707
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;pool.sks-keyservers.net.   IN  A

;; Query time: 47 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Aug 31 20:22:44 PST 2021
;; MSG SIZE  rcvd: 52
Run Code Online (Sandbox Code Playgroud)

如果您访问https://sks-keyservers.net,您将看到一条消息,表明由于重复的 GDPR 请求,他们已停止提供池的 DNS 记录。LXC 的更高版本hkp://keyserver.ubuntu.com对此值进行硬编码。

要使用它,您可以执行以下操作:

$ DOWNLOAD_KEYSERVER="hkp://keyserver.ubuntu.com" lxc-create -t download -n my-container
Run Code Online (Sandbox Code Playgroud)

或者只是在运行命令之前导出变量,例如export DOWNLOAD_KEYSERVER="hkp://keyserver.ubuntu.com".