![验证 archlinux 签名](https://linux22.com/image/175634/%E9%AA%8C%E8%AF%81%20archlinux%20%E7%AD%BE%E5%90%8D.png)
我如何验证我的 archlinux iso?
gpg --verify archlinux-2020.06.01-x86_64.iso.sig archlinux-2020.06.01-x86_64.iso
gpg: Signature made Mo 01 Jun 2020 11:53:53 CEST
gpg: using RSA key 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC
gpg: Can't check signature: No public key
我丢失了公钥,但我到底在哪里可以下载它。还有一个 sha1,但是我应该用它做什么呢?
答案1
校验和旨在与相应程序的(“check”)选项一起使用-c
,从您下载 ISO/存档文件和文件的目录运行它*sums.txt
:
$ sha1sum -c sha1sums.txt
archlinux-2020.06.01-x86_64.iso: OK
(为了清楚起见,省略了有关丢失文件(我没有下载)的错误消息)。
有关如何验证下载文件签名的说明可以在安装指南,Arch Wiki 的一部分:
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-2020.06.01-x86_64.iso.sig
如果您没有在工作的 Arch Linux 系统上运行它,您gpg
可能无法从它知道的密钥服务器中检索所需的密钥。然后,您可以尝试添加--keyserver=hkp://pool.sks-keyservers.net
到您的命令中(从当前工作的 Arch 的 pacman 配置中选取的 URL)。
相反,如果您已经有一个正在运行的 Arch,那么您也拥有所需的公钥 - 只是不在您自己的密钥环中:
$ gpg --homedir=/etc/pacman.d/gnupg --verify archlinux-2020.06.01-x86_64.iso.sig
答案2
我在 Ubuntu 20.04 上,也遇到了同样的问题,我所做的解决方法是获得公钥(如果我做错了什么,请有人纠正我):
curl https://git.archlinux.org/archlinux-keyring.git/plain/packager/pierre.asc > archpub.key
然后我将此公钥导入到我的 gpg 密钥环中(我认为):
gpg --import archpub.key
然后我能够验证签名(使用同一目录中的 .iso 和 .sig 文件):
gpg --verify archlinux-2021.05.01-x86_64.iso.sig
这是该命令打印回来的内容:
gpg: assuming signed data in 'archlinux-2021.05.01-x86_64.iso'
gpg: Signature made Sat 01 May 2021 01:24:14 AM EDT
gpg: using RSA key 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC
gpg: Good signature from "Pierre Schmitz <[email protected]>" [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: 4AA4 767B BC9C 4B1D 18AE 28B7 7F2D 434B 9741 E8AC
希望这对某人有帮助!我尝试使用导入公钥--keyserver=hkp://pool.sks-keyservers.net
,但由于某种原因它对我不起作用。