为了在我的 Debian jessie 上编译新内核,我尝试按照官方说明验证 GPG 密钥网站。
我已经下载了linux-3.18.35.tar.sign
和linux-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
应该管用。
你也可以改为配置密钥服务器池(无论如何,这是一个好主意):
- 安装
gnupg-curl
(apt-get install gnupg-curl
在 Debian 上); 下载 SKS CA
cd ~/.gnupg; wget https://sks-keyservers.net/sks-keyservers.netCA.pem
验证一下;
将以下行添加到您的
~/.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