当我添加 gns 存储库并尝试使用此命令时出现此错误:
#sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F88F6D313016330404F710FC9A2FD067A2E3EF7B
错误是:
gpg: keyserver receive failed: Server indicated a failure
答案1
在防火墙后面,您应该使用端口 80 而不是默认端口 11371 :
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9A2FD067A2E3EF7B
示例输出:
Executing: /tmp/apt-key-gpghome.mTGQWBR2AG/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 9A2FD067A2E3EF7B
gpg: key 9A2FD067A2E3EF7B: "Launchpad PPA for GNS3" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
答案2
这个问题对我来说真的很难;在我发现这个之前,所提出的解决方案都不适合我在 reddit 上发帖。
我刚刚将这一行添加到/etc/resolv.conf
:
nameserver 8.8.8.8 # Google DNS
您可以尝试任何其他 DNS,看看哪一个适合您,例如
nameserver 1.1.1.1 # Cloudflare
答案3
这个问题可能是由空的 引起的(正如我刚刚经历的那样)resolv.conf
,就像systemd-resolved
在通过 进行主要 DNS 解析的系统上的情况一样nsswitch
。
gpg
我认为这是不使用相关 libc 函数的情况nsswitch
,而是出于某种原因读取resolv.conf
自身。
症状:
gpg: keyserver receive failed: Server indicated a failure
/etc/resolv.conf
为空,但主机名解析例如getent hosts google.com
等都ping google.com
可以。注意dig
,drill
、 、nslookup
都是resolv.conf
直接读取的,所以这些可能不起作用。/etc/nsswitch.conf
其中有类似的内容hosts: files mymachines myhostname resolve [!UNAVAIL=return] dns
,其中resolve
是 systemd 提供的模块(man 8 libnss_resolve.so.2
详细信息请参阅)。
解决:
您想要创建一个指向 systemd 自动生成的符号链接resolv.conf
,以反映当前解析器设置。我建议阅读man 8 systemd-resolved
“/ETC/RESOLV.CONF”部分,了解其具体作用的详细信息。以下是我推荐的用于创建符号链接的命令和输出:
$ # you should check this has reasonable contents before using it
$ cat /run/systemd/resolve/stub-resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
nameserver 127.0.0.53
options edns0 trust-ad
$ rm /etc/resolv.conf
$ ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
答案4
在 ubuntu 18.04 上遇到同样的问题,运行 dirmngr 2.2.4。我选择检查我的 dns 设置,并添加了我的本地 dns 服务器“nameserver 1.1.1.1”和 google 的“nameserver 8.8.8.8”。然后就成功了。