如何在 Linux 中驗證 ISO 鏡像
你從喜愛的 Linux 發行版的官方網站或第三方網站下載了它的 ISO 鏡像之後,接下來要做什麼呢?是創建可啟動介質並開始安裝系統嗎?並不是,請稍等一下。在開始使用它之前,強烈建議你檢查一下你剛下載到本地系統中的 ISO 文件是否是下載鏡像站點中 ISO 文件的一個精確拷貝。因為在前幾年 Linux Mint 的網站被攻破了,並且攻擊者創建了一個包含後門的經過修改的 Linux Mint ISO 文件。 所以驗證下載的 Linux ISO 鏡像的可靠性和完整性是非常重要的一件事兒。假如你不知道如何在 Linux 中驗證 ISO 鏡像,本次的簡要介紹將給予你幫助,請接著往下看!
在 Linux 中驗證 ISO 鏡像
我們可以使用 ISO 鏡像的「校驗和」來驗證 ISO 鏡像。校驗和是一系列字母和數字的組合,用來檢驗下載文件的數據是否有錯以及驗證其可靠性和完整性。當前存在不同類型的校驗和,例如 SHA-0、SHA-1、SHA-2(224、256、384、512)和 MD5。MD5 校驗和最為常用,但對於現代的 Linux 發行版,SHA-256 最常被使用。
我們將使用名為 gpg
和 sha256
的兩個工具來驗證 ISO 鏡像的可靠性和完整性。
下載校驗和及簽名
針對本篇指南的目的,我將使用 Ubuntu 18.04 LTS 伺服器 ISO 鏡像來做驗證,但對於其他的 Linux 發行版應該也是適用的。
在靠近 Ubuntu 下載頁的最上端,你將看到一些額外的文件(校驗和及簽名),正如下面展示的圖片那樣:
其中名為 SHA256SUMS
的文件包含了這裡所有可獲取鏡像的校驗和,而 SHA256SUMS.gpg
文件則是這個文件的 GnuPG 簽名。在下面的步驟中,我們將使用這個簽名文件來 驗證 校驗和文件。
下載 Ubuntu 的 ISO 鏡像文件以及剛才提到的那兩個文件,然後將它們放到同一目錄下,例如這裡的 ISO
目錄:
$ ls ISO/
SHA256SUMS SHA256SUMS.gpg ubuntu-18.04.2-live-server-amd64.iso
如你所見,我已經下載了 Ubuntu 18.04.2 LTS 伺服器版本的鏡像,以及對應的校驗和文件和簽名文件。
下載有效的簽名秘鑰
現在,使用下面的命令來下載正確的簽名秘鑰:
$ gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0x46181433FBB75451 0xD94AA3F0EFE21092
示例輸出如下:
gpg: key D94AA3F0EFE21092: 57 signatures not checked due to missing keys
gpg: key D94AA3F0EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>" imported
gpg: key 46181433FBB75451: 105 signatures not checked due to missing keys
gpg: key 46181433FBB75451: public key "Ubuntu CD Image Automatic Signing Key <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 2
gpg: imported: 2
驗證 SHA-256 校驗和
接下來我們將使用簽名來驗證校驗和文件:
$ gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS
下面是示例輸出:
gpg: Signature made Friday 15 February 2019 04:23:33 AM IST
gpg: using DSA key 46181433FBB75451
gpg: Good signature from "Ubuntu CD Image Automatic Signing Key <[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: C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451
gpg: Signature made Friday 15 February 2019 04:23:33 AM IST
gpg: using RSA key D94AA3F0EFE21092
gpg: Good signature from "Ubuntu CD Image Automatic Signing Key (2012) <[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: 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092
假如你在輸出中看到 Good signature
字樣,那麼該校驗和文件便是由 Ubuntu 開發者製作的,並且由秘鑰文件的所屬者簽名認證。
檢驗下載的 ISO 文件
下面讓我們繼續檢查下載的 ISO 文件是否和所給的校驗和相匹配。為了達到該目的,只需要運行:
$ sha256sum -c SHA256SUMS 2>&1 | grep OK
ubuntu-18.04.2-live-server-amd64.iso: OK
假如校驗和是匹配的,你將看到 OK
字樣,這意味著下載的文件是合法的,沒有被改變或篡改過。
假如你沒有獲得類似的輸出,或者看到不同的輸出,則該 ISO 文件可能已經被修改過或者沒有被正確地下載。你必須從一個更好的下載源重新下載該文件。
某些 Linux 發行版已經在它的下載頁面中包含了校驗和。例如 Pop!_os 的開發者在他們的下載頁面中提供了所有 ISO 鏡像的 SHA-256 校驗和,這樣你就可以快速地驗證這些 ISO 鏡像。
在下載完 ISO 鏡像文件後,可以使用下面的命令來驗證它們:
$ sha256sum Soft_backup/ISOs/pop-os_18.04_amd64_intel_54.iso
示例輸出如下:
680e1aa5a76c86843750e8120e2e50c2787973343430956b5cbe275d3ec228a6 Soft_backup/ISOs/pop-os_18.04_amd64_intel_54.iso
在上面的輸出中,以 680elaa
開頭的部分為 SHA-256 校驗和的值。請將該值與位於下載頁面中提供的 SHA-256 校驗和的值進行比較,如果這兩個值相同,那說明這個下載的 ISO 文件是合法的,與它的原有狀態相比沒有經過更改或者篡改。萬事俱備,你可以進行下一步了!
上面的內容便是我們如何在 Linux 中驗證一個 ISO 文件的可靠性和完整性的方法。無論你是從官方站點或者第三方站點下載 ISO 文件,我們總是推薦你在使用它們之前做一次簡單的快速驗證。希望本篇的內容對你有所幫助。
參考文獻:
via: https://www.ostechnix.com/how-to-verify-iso-images-in-linux/
作者:sk 選題:lujun9972 譯者:FSSlc 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive