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

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

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

sudo lxc-create -t download ubuntu -n web1

它显示了这个错误

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

如何解决这个问题?

答案1

在不知道您使用的是哪个版本的 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

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

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

$ DOWNLOAD_KEYSERVER="hkp://keyserver.ubuntu.com" lxc-create -t download -n my-container

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

答案2

尽管我尝试了上述所有方法,但都没有奏效,而且我不断

Setting up the GPG keyring
ERROR: Unable to fetch GPG key from keyserver
lxc-create: priv-cont: lxccontainer.c: create_run_template: 1616 Failed to create container from template
lxc-create: priv-cont: tools/lxc_create.c: main: 319 Failed to create container priv-cont

所以,这里我找到了标志 --no-validate 选项,请注意,不安全,但对我的学习过程有用。执行如下: DOWNLOAD_KEYSERVER="keyserver.ubuntu.com" sudo lxc-create --template download --name priv-cont -- --no-validate

答案3

就像 @starbeamrainbowlabs 所说的那样,使用标志--keyserver hkps://keyserver.ubuntu.com。请注意协议字符串末尾的“s”。没有它,它就不再起作用了……

完整工作示例:

lxc-create -n mycontainer -t download -- -d debian -r bullseye -a amd64 --keyserver hkps://keyserver.ubuntu.com

相关内容