[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