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

lig*_*umq 5 gnupg gpg-agent

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

gpg --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F
Run Code Online (Sandbox Code Playgroud)

但我发现服务器不可用

gpg: keyserver receive failed: No keyserver available
Run Code Online (Sandbox Code Playgroud)

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

lig*_*umq 6

这对我有用

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 34893610CEAA9512
Run Code Online (Sandbox Code Playgroud)

你可以使用脚本

#!/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
Run Code Online (Sandbox Code Playgroud)