gpg: 没有可用的密钥服务器。

5

在我的服务器上,我尝试获取密钥并执行命令。

gpg --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F

但我发现服务器无法访问。

gpg: keyserver receive failed: No keyserver available

但是当我在本地机器上做相同的操作时,一切都正常工作。关键是已经导入。请帮助我。 DNS 在服务器和本地电脑上是一样的。 不同点在于本地使用的 GPG 和 dirmngr 版本为 2.2.12,在服务器上为 2.2.4。 Ubuntu 18.04。

3个回答

6

它对我起作用了

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 34893610CEAA9512

你可以使用脚本(script)

#!/bin/bash

declare -a keyservers=(
    "hkp://keyserver.ubuntu.com:80"
    "keyserver.ubuntu.com"
    "ha.pool.sks-keyservers.net"
    "hkp://ha.pool.sks-keyservers.net:80"
    "p80.pool.sks-keyservers.net"
    "hkp://p80.pool.sks-keyservers.net:80"
    "pgp.mit.edu"
    "hkp://pgp.mit.edu:80"
)

keys=$(apt update 2>&1 | grep -o '[0-9A-Z]\{16\}$')

for key in $keys; do
    for server in "${keyservers[@]}"; do
        echo "Fetching GPG key ${key} from ${server}"
        apt-key adv --keyserver $server --keyserver-options timeout=10 --recv-keys ${key}
        if [ $? -eq 0 ]; then
            echo "Key '${key}' successful added from server '${server}'"
            break
        else
            echo "Failed add key '${key}' from server '${server}'. Try another server"
            continue
        fi
    done
done

在我的情况下,我像这样设置了keys变量:keys=$(apt update 2>&1 |grep "GPG error" | awk '{ print $13 }')错误消息看起来像这样:W: GPG error: https://my.server.domain/artifactory/Hashicorp-apt-repo-key jammy InRelease: The following signatures were invalid: REVKEYSIG DA418C88A3219F7B HashiCorp Security (HashiCorp Package Signing) - undefined

0

看起来你的网络访问或环境存在问题。 这个命令对我来说没问题。 我正在使用的 GPG 和 Ubuntu 版本:

gpg --version | head -2; lsb_release -d
gpg (GnuPG) 2.2.19
libgcrypt 1.8.5
Description:    Ubuntu 20.04.3 LTS

尝试通过curl访问keyserver.ubuntu.com并查看发生了什么。
curl http://keyserver.ubuntu.com | & grep description
      <meta name="description" content="OpenPGP Keyserver">

-1

只需断开您的 Wi-Fi,然后重新连接即可。 这对我有用。


目前您的回答写得不清楚。请进行[编辑],添加更多细节以帮助他人理解如何解决问题。您可以在帮助中心了解有关编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接