[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

如何检验你所取得的 CentOS Linux 映像、ISO 或 组件

1. CentOS Linux 如何支持检验

你可从 CentOS 计划的众多捐赠(并非计划直属管理)镜站下载 ISO 档及更新组件。我们提供数个方法让你可检验这些镜站上的组件及 ISO 档没有被修改。

2. ISO 档及映像

2.1. 发行公告

在你下载 CentOS ISO 档或云端映像的页面上,应该会有 Release Notes(发行注记) 的连结。如果你拜访发行注记页,你将会在 centos.org 管辖的一页上看见特定 ISO 档的 sha256sum 值。此技巧页告诉你如何在不同操作系统上比较你下载的 ISO 档的 sha256sum 和发行注记页上的值。这是检验 ISO 档的最简易方法,因此敬请查阅该 ISO 档或映像的发行注记发行公告并找出它的 sha256sum。

2.2. ISO 档或安装映像的目录

要是你不能找获已下载的 ISO 档的发行公告,你取得该 ISO 的目录内应该有一个 sha256sum.txt.asc 档可用来检验该 ISO 档。此程序较为复杂,因此我们会在这里示范整个检验过程。 签署该 sha256sum.txt.asc 档的金钥与签署该发行版本的金钥是相同的。我会利用 CentOS-7 作为示范,然后解释不同 CentOS 版本之间的差异。此程序须要安装 linux gnupg > 1.4 的组件。

2.2.1. 1. 检验签署文件用的金钥

首先用以下指令(在命令行)创建一个检验用的目录:

mkdir validate

cd validate

接著便是检验签署 sha256sum 档的金钥。你可以从这里找到金钥及相应指模的清单。在这个样例中我们会检验 CentOS-7 的金钥……它的名称是 RPM-GPG-KEY-CentOS-7

2.2.1.1. 运用 CentOS-7 机器

如果你在 CentOS-7 机器上进行检验,这条金钥已经安装在 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7。要是你在用一台 CentOS-7 机器,你可利用以下指令检验金钥:

gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

输出将会是:

pub  4096R/F4A80EB5 2014-06-23 CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>
      Key fingerprint = 6341 AB27 53D7 8A78 A7C2  7BB1 24C6 A8A7 F4A8 0EB5

要是该指模与此清单上的 CentOS 7 Signing Key 指模吻合,你的系统上已安装了正确的金钥。

2.2.1.2. 运用非 CentOS-7 的机器

要是你采用的并非 CentOS-7 系统,而是安装了 gnupg 1.4 或以上的 Linux,那么你便需要下载签署用的金钥,即 CentOS-7 的金钥,的公开部份。

请下载该公钥:

wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

ArtWork/WikiDesign/icon-admonition-idea.png

留意这虽然不是一个 https 地址,但我们现在要检验一条金钥的指模,因此不论它来自哪里仍是正确的

现在我们检查金钥:

gpg --quiet --with-fingerprint ./RPM-GPG-KEY-CentOS-7

输出将会是:

pub  4096R/F4A80EB5 2014-06-23 CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>
      Key fingerprint = 6341 AB27 53D7 8A78 A7C2  7BB1 24C6 A8A7 F4A8 0EB5

要是该指模与此清单上的 CentOS 7 Signing Key 指模吻合,你便下载了正确的金钥。

2.2.2. 2. 输入金钥

现在我们只需把金钥汇进匙环内。我们采用的是 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7./RPM-GPG-KEY-CentOS-7

gpg --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

gpg --import ./RPM-GPG-KEY-CentOS-7

请注意,你只需进行此步骤便可把金钥汇进你的本地匙环。

2.2.3. 3. 下载 ISO(或映像)档及 sha256sum.txt.asc 档进行检验

当我们肯定已拥有正确的公钥可检查被签署的文件,下一步就是检验 sha256sum 档是正确的。要是你从这里下载 ISO 档:

wget http://ftp.osuosl.org/pub/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso

取得 ISO 档后,你便可从同一处下载 sha256sum.txt.asc 档。在这个样例中,它存放于。

wget http://ftp.osuosl.org/pub/centos/7/isos/x86_64/sha256sum.txt.asc

取得 sha256sum.txt.asc 档后,你便可这样检验它:

gpg --verify ./sha256sum.txt.asc

它会有类似下列输出:

gpg: Signature made Thu 10 Dec 2015 09:41:44 AM CST using RSA key ID F4A80EB5
gpg: Good signature from "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
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: 6341 AB27 53D7 8A78 A7C2  7BB1 24C6 A8A7 F4A8 0EB5

ArtWork/WikiDesign/icon-admonition-idea.png

请确保所列出的 Primary key fingerprint(金钥指模)与此清单内的吻合(我们先前已做过,你可选择重做一次)

检验完 sha256sum.txt.asc 档的签名后,请把 ISO(或映像)档与 sha256sum.txt.asc 档放在同一个目录内。接著你便可利用下列指令检验 ISO 或映像档:

sha256sum -c sha256sum.txt.asc 2>&1 | grep OK

这个样例的输出是:

CentOS-7-x86_64-DVD-1511.iso: OK

2.2.4. 4. 其它位置

CentOS 6 ISO 档的唯一分别就是金钥名为:RPM-GPG-KEY-CentOS-6

你仍然要采用来自下载 ISO 的目录内的 sha256sum.txt.asc 档,及在检验金钥的指模后输入它。

如果你要检验来自以下目录的 CentOS 映像:

CentOS 7 云端映像 步骤依然一样,从下载 ISO 的目录内取得 sha256sum.txt.asc,然后滙入已被检验的金钥(这些云端映像用 RPM-GPG-KEY-CentOS-7)。

因此基本的步骤是

通过上述步骤,你可随时检验所拥有的 ISO 或映像档是由 CentOS Linux 小组发行的。你从那里下载金钥或映像/ISO 档并不要紧……因为这个程序依赖 gpg 金钥的签名。

3. 利用已签署的 CentOS-6 或 CentOS-7 中继数据访问 CentOS 计划发行的软件库

3.1. 已签署的软件库中继数据是什么

运用已签署的中继数据等于 yum 检查 repomd.xml.asc 是通过软件库的金钥所签署的。这代表你能确定信息是由金钥的拥有人所发行的。

3.2. 提供已签署的中继数据的软件库

CentOS 计划为下列 CentOS-6 及 CentOS-7 软件库提供己签署的 repomd.xml.asc 档:

在 CentOS-6 或 CentOS-7,你可于上述五个软件库选用已签署的中继数据。

CentOS-5 所附带的 yum 不能正确地支持己签署的中继数据,因此 CentOS-5 没有已签署的软件库。

3.3. 如何启用己签署的中继数据

请编辑相关的软件库定义档,然后在适当软件库部份加入以下内容:

repo_gpgcheck=1

updatesextrascentosplus 软件库的定义收录于 /etc/yum.repos.d/CentOS-Base.repo

cr 软件库的定义收录于 /etc/yum.repos.d/CentOS-CR.repo

fasttrack 软件库的定义收录于 /etc/yum.repos.d/CentOS-fasttrack.repo

在以下范列,CentOS-Base.repo 内的 updates 软件库启用了已签署的中继数据:

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
repo_gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever

Translation of revision 6


2023-09-11 07:23