验证文件完整性
备注
此步骤是可选的,但推荐! (根据经验,该验证过程容易出错,如果能确保下载过程的文件完整,也可直接跳过本节不做,至下一小节《编译内核》继续)
这些 .sign 文件可用于验证下载的文件没有损坏或篡改。此处显示的步骤改编自 Linux内核存档,有关该过程的更多详细信息,请参阅链接页面。
可以使用 gpg2 来验证 .tar 存档:
gpg2 --verify linux-*.tar.signgpg2 --verify patch-*.patch.sign
如果输出类似于以下内容:
$ gpg2 --verify linux-*.tar.sign gpg: assuming signed data in 'linux-4.14.12.tar' gpg: Signature made Fr 05 Jan 2018 06:49:11 PST using RSA key ID 6092693E gpg: Can't check signature: No public key
必须首先下载签署上述文件的人的公开密钥。从上面的输出中可以看出,它具有 ID 6092693E。可以从密钥服务器获取它:
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6092693E
对补丁也类似:
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 2872E4CC
请注意,其他内核版本的密钥可能具有不同的 ID,必须相应地进行匹配调整。
下载密钥后,现在可以验证来源。以下是正确输出的示例:
$ gpg2 --verify linux-*.tar.sign gpg: assuming signed data in 'linux-4.14.12.tar' gpg: Signature made Fr 05 Jan 2018 06:49:11 PST using RSA key ID 6092693E gpg: Good signature from "Greg Kroah-Hartman <gregkh@linuxfoundation.org>" [unknown] gpg: aka "Greg Kroah-Hartman <gregkh@kernel.org>" [unknown] gpg: aka "Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E
有关警告的更多信息,请参阅 Linux内核存档 。