1

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

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

但我知道服务器不可用

gpg: keyserver receive failed: No keyserver available

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

4

2 回答 2

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">
于 2021-09-27T11:40:11.157 回答
0

它对我有用

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
于 2021-09-28T09:02:36.910 回答