无法验证内核签名“gpg:无法检查签名:未找到公钥”

无法验证内核签名“gpg:无法检查签名:未找到公钥”

为了在我的 Debian jessie 上编译新内核,我尝试按照官方说明验证 GPG 密钥网站

我已经下载了linux-3.18.35.tar.signlinux-3.18.35.tar.xz版本并使用 解压缩unzx

.tar要使用以下命令验证存档:

gpg --verify linux-3.18.35.tar.sign

我得到:

gpg: assuming signed data in `linux-3.18.35.tar'
gpg: Signature made Wed 08 Jun 2016 01:19:29 AM CET using RSA key ID 6092693E
gpg: Can't check signature: public key not found

从 PGP 密钥服务器获取公钥:

#gpg --keyserver hkp://keys.gnupg.net --recv-keys 6092693E

gpg: requesting key 6092693E from hkp server keys.gnupg.net
?: keys.gnupg.net: Host not found
gpgkeys: HTTP fetch error 7: couldn't connect: Connection refused
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

我的版本也遇到类似的问题4.4.13

我尝试过以下方法回答,

# gpg --keyserver subkeys.pgp.net --recv-keys 6092693E && gpg --export --armor 6092693E | sudo apt-key add -

gpg: requesting key 6092693E from hkp server subkeys.pgp.net
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

和:

# gpg --keyserver subkeys.pgp.net:80 --recv-keys 6092693E

gpg: requesting key 6092693E from subkeys.pgp.net:80
gpgkeys: no keyserver host provided
gpg: keyserver internal error
gpg: keyserver receive failed: keyserver error

如何正确验证内核签名?

答案1

您只需要在密钥环中包含公钥:

gpg --keyserver subkeys.pgp.net --recv-keys 0x38DBBDC86092693E

使用长标识符!)。如果超时,请重试 - 有多个服务器,其中一些服务器当前似乎存在问题。apt-key等根本不参与其中。

一旦您将钥匙放入钥匙圈中,

gpg --verify linux-3.18.35.tar.sign

应该管用。

你也可以改为配置密钥服务器池(无论如何,这是一个好主意):

  1. 安装gnupg-curlapt-get install gnupg-curl在 Debian 上);
  2. 下载 SKS CA

    cd ~/.gnupg; wget https://sks-keyservers.net/sks-keyservers.netCA.pem
    
  3. 验证一下;

  4. 将以下行添加到您的~/.gnupg/gpg.conf,或更改它(如果它已经存在):

    keyserver hkps://hkps.pool.sks-keyservers.net
    

    并通过添加来设置证书

    keyserver-options ca-cert-file=/home/.../.gnupg/sks-keyservers.netCA.pem
    

    ~/.gnupg/gpg.conf(对于 GnuPG 1)或

    keyserver hkps://hkps.pool.sks-keyservers.net
    hkp-cacert /home/.../.gnupg/sks-keyservers.netCA.pem
    

    ~/.gnupg/dirmngr.conf(对于 GnuPG 2),...在两种情况下将路径中的 替换为主目录的适当值。

一旦你做到了这一点,

gpg --recv-keys 0x38DBBDC86092693E

应可靠地检索密钥。

如果以上方法均失败,您可以手动下载并导入密钥:

curl 'http://pgp.surfnet.nl:11371/pks/lookup?op=get&search=0x38DBBDC86092693E' > gregkh.key
gpg --import gregkh.key

相关内容