如何使用 SHA256 哈希或 GPG 密鑰在 Ubuntu 中驗證下載

您可能經常下載一些開源軟件,例如各種 Linux 發行版 ISO。 下載時,您可能還會注意到下載校驗和文件的鏈接。 那個鏈接是乾什麼的? 實際上,Linux 發行版將校驗和文件與源 ISO 文件一起分發以驗證下載文件的完整性。 使用文件的校驗和,您可以驗證下載的文件是否真實且未被篡改。 當您從其他地方下載文件而不是從第三方網站等原始網站下載文件時,它特別有用,因為第三方網站更有可能篡改文件。 強烈建議在從任何第三方下載文件時驗證校驗和。

在本文中,我們將通過幾個步驟來幫助您驗證 Ubuntu 操作系統中的任何下載。 在本文中,我使用 Ubuntu 18.04 LTS 來描述該過程。 此外,我已經下載 ubuntu-18.04.2-desktop-amd64.iso 它將在本文中用於驗證過程。

您可以使用兩種方法來驗證下載文件的完整性。 第一種方法是通過 SHA256 散列,這是一種快速但安全性較低的方法。 第二個是通過 gpg 密鑰,這是一種更安全的檢查文件完整性的方法。

使用 SHA256 哈希驗證下載

在第一種方法中,我們將使用哈希來驗證我們的下載。 散列是驗證系統上下載的文件是否與原始源文件相同並且未被第三方更改的驗證過程。 該方法的步驟如下:

步驟 1:下載 SHA256SUMS 文件

您需要從官方 Ubuntu 鏡像中找到 SHA256SUMS 文件。 鏡像頁麵包括一些額外的文件以及 Ubuntu 圖像。 我正在使用以下鏡像下載 SHA256SUMS 文件:

https://releases.ubuntu.com/18.04/

找到該文件後,單擊它以將其打開。 它包含 Ubuntu 提供的原始文件的校驗和。

步驟 2:生成下載的 ISO 文件的 SHA256 校驗和

現在按打開終端 Ctrl+Alt+T 組合鍵。 然後導航到您放置下載文件的目錄。

$ cd [path-to-file]

然後在終端中運行以下命令以生成下載的 ISO 文件的 SHA256 校驗和。

第 3 步:比較兩個文件中的校驗和。

將系統生成的校驗和與 Ubuntu 官方鏡像站點上提供的校驗和進行比較。 如果校驗和匹配,則您下載的是真實文件,否則文件已損壞。

驗證下載你唱gpg鍵

這種方法比前一種方法更安全。 讓我們看看它是如何工作的。 該方法的步驟如下:

步驟 1:下載 SHA256SUMS 和 SHA256SUMS.gpg

您需要從任何 Ubuntu 鏡像中找到 SHA256SUMS 和 SHA256SUMS.gpg 文件。 找到這些文件後,打開它們。 右鍵單擊並使用另存為頁面選項來保存它們。 Save 兩個文件在同一個目錄下。

第 2 步:找到用於簽發簽名的密鑰

啟動終端並導航到放置校驗和文件的目錄。

$ cd [path-to-file]

然後運行以下命令以驗證使用哪個密鑰生成簽名。

$ gpg –verify SHA256SUMS.gpg SHA256SUMS

我們也可以使用這個命令來驗證簽名。 但是此時沒有公鑰,所以會返回如下圖所示的錯誤信息。

通過查看上面的輸出,您可以看到密鑰 ID 為:46181433FBB75451 和 D94AA3F0EFE21092。 我們可以使用這些 ID 從 Ubuntu 服務器請求它們。

第三步:獲取Ubuntu服務器的公鑰

我們將使用上述密鑰 ID 從 Ubuntu 服務器請求公鑰。 可以通過在終端中運行以下命令來完成。 命令的一般語法是:

$ gpg –keyserver <keyserver-name –recv-keys <publicKey>

現在您已收到來自 Ubuntu 服務器的密鑰。

第 4 步:驗證密鑰指紋

現在您需要驗證密鑰指紋。 為此,請在終端中運行以下命令。

$ gpg --list-keys --with-fingerprint <0x-----> <0x------>

第 5 步:驗證簽名

現在您可以運行該命令來驗證簽名。 它與您之前用於查找用於發布簽名的密鑰的命令相同。

$ gpg --verify SHA256SUMS.gpg SHA256SUMS

現在你可以看到上面的輸出。 它正在顯示 好簽名 驗證我們的 ISO 文件完整性的消息。 如果它們不匹配,它將顯示為 壞簽名.

您還會注意到警告標誌,這是因為您沒有對密鑰進行副署,而且它們不在您的受信任來源列表中。

最後一步

現在您需要為下載的 ISO a 文件生成一個 sha256 校驗和。 然後將其與您從 Ubuntu 鏡像下載的 SHA256SUM 文件進行匹配。 確保您已將下載的文件、SHA256SUMS 和 SHA256SUMS.gpg 放在同一目錄中。

在終端中運行以下命令:

$ sha256sum -c SHA256SUMS 2>&1 | grep OK

您將獲得如下輸出。 如果輸出不同,則意味著您下載的 ISO 文件已損壞。

這就是在 Ubuntu 中驗證下載所需的全部知識。 使用上述驗證方法,您可以確認您下載的是一個真實的ISO文件,在下載過程中沒有損壞和篡改。