4

我正在使用以下命令

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys <MY-8-DIGIT-SIGNATURE>

按照本文的指导https://getstream.io/blog/publishing-libraries-to-mavencentral-2021/

但是,当我尝试时,它会报告

gpg: sending key <MY-16-DIGIT-SIGNATURE> to hkp://pool.sks-keyservers.net
gpg: keyserver send failed: No keyserver available
gpg: keyserver send failed: No keyserver available

我上面的命令有什么问题?

更新结果
这适用于 macOS Catalina、Intel Core i7 机器。但它不适用于 macOS Big Sur、M1 ARM64 机器。

不确定是 Big Sur 还是 M1 ARM64 机器问题?

4

4 回答 4

6

找到了解决该问题的方法。

首先我杀死dirmngrusing 命令

gpgconf --kill dirmngr

然后,我dirmngr--standard-resolver

dirmngr --debug-all --daemon --standard-resolver

最后,在另一个终端上,我运行

gpg --verbose --keyserver hkp://pool.sks-keyservers.net --recv-keys 0x0A292B5F8A3C247F586F19D7E1AF518CC4B1DC35

这给了我结果

gpg: key E1AF518CC4B1DC35: "Kristof (GPGTools) <[email blocked]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

不知道为什么我需要--standard-resolver,但它适用于我的情况。

更新

找到了一种更好的方法来standard-resolver默认设置 dirmngr。这只是通过添加standard-resolver~/.gnupg/dirmngr.conf文件。

于 2021-04-26T01:40:42.037 回答
5

https://sks-keyservers.net/ "此服务已弃用。这意味着它不再维护,也不会颁发新的 HKPS 证书。不应期望服务可靠性。

2021 年6 月 21 日更新:由于更多的 GDPR 删除请求,将不再提供池的 DNS 记录。”

2021-06-21 更新:您可以使用替代服务器,例如:

  • keyserver.ubuntu.com
  • 钥匙.openpgp.org
  • pgp.mit.edu

用这样的东西:

gpg --keyserver keys.openpgp.org --send-key [key id]

于 2021-07-10T14:56:29.357 回答
1

我有一个类似的问题。它对我有用

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}"
        gpg --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-28T08:59:18.503 回答
0

这对我有用,可以将我的密钥发送到 OSSRH 中央服务器支持的 3 个密钥服务器:

  • keyserver.ubuntu.com
  • 钥匙.openpgp.org
  • pgp.mit.edu
于 2021-08-26T13:37:40.120 回答