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

gpg: No keyserver available

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

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

但我知道服务器不可用

gpg: keyserver receive failed: No keyserver available

但是当我在本地计算机上执行相同操作时,一切正常 fine.the 密钥已导入。 请帮帮我 服务器和本地计算机上的 dns 相同。 服务器 2.2.4 上本地 2.2.12 上 gpg 和 dirmngr 版本的差异 Ubuntu18.04

您似乎遇到了网络访问问题或环境问题。 这个命令对我来说很好用。 我使用的 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">

对我有用

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

你可以使用脚本

#!/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