在Linux系統(tǒng)中使用SHA256來校驗(yàn)下載的文件的方法
當(dāng)你下載了一個(gè) ISO 鏡像,特別是從 BitTorrent 網(wǎng)絡(luò)上很多未知的種子處下載的,通常建議要驗(yàn)證下載鏡像的完整性。
對(duì)于 Ubuntu 發(fā)行版的情況, Canonical 提供了幾個(gè)供驗(yàn)證使用的驗(yàn)校文件(如 MD5SUM, SHA1SUMS 和 SHA256SUMS)。在這個(gè)例子中我們使用 SHA256SUMS。
首先,下載下面兩個(gè)文件。
$ wget http://releases.ubuntu.com/14.10/SHA256SUMS.gpg
第一個(gè)文件是 ISO 鏡像的 SHA256 驗(yàn)校文件,而第二個(gè)文件(*.gpg)是驗(yàn)校文件的簽名。第二個(gè)文件的目的是驗(yàn)證驗(yàn)校文件本身的有效性。
我們通過運(yùn)行下面的命令來驗(yàn)證 SHA256SUMS 文件的有效性。
gpg: Can't check signature: public key not found
如果你得到上面的錯(cuò)誤信息,是因?yàn)槟氵€沒有導(dǎo)入生成這個(gè)簽名的公共密鑰。因此我們現(xiàn)在導(dǎo)入需要的公共密鑰。
這樣做之前,你需要知道公共密鑰的 “key ID”,而這在上面的 gpg 命令的輸出中有顯示。在這個(gè)例子中,密鑰 ID 時(shí) “FBB75451”。運(yùn)行下面的命令來從官方 Ubuntu 密鑰服務(wù)器導(dǎo)入公共密鑰。
既然公共密鑰已經(jīng)被導(dǎo)入,我們可以繼續(xù)并重新運(yùn)行之前的命令來驗(yàn)證簽名。
這次你沒有看到 “public key not found” 的錯(cuò)誤信息。如果 SHA256SUMS 文件時(shí)有效的,你會(huì)看到 “Good signature from ” 的信息。注意到你還看到一個(gè) “This key is not certified with a trusted signature” 的警告信息?;旧线@個(gè)警告信息是告訴你對(duì)導(dǎo)入的公共密鑰沒有明確信任。要避免這個(gè)警告,你可以選擇指定完全信任導(dǎo)入的公共密鑰,但你應(yīng)該只有在通過其他方式審查了這個(gè)密鑰之后才這樣做。否則的話,你可以暫時(shí)忽略這個(gè)警告。
在驗(yàn)證了 SHA256SUMS 文件的完整性后,最后一個(gè)步驟是比較已下載 ISO 文件的 SHA256 驗(yàn)校和和 SHA256SUMS 文件中對(duì)應(yīng)的驗(yàn)校值。你可以使用 sha256sum 命令行工具來完成這個(gè)步驟。
為方便起見,下面一行命令比較 SHA256 驗(yàn)校和并報(bào)告結(jié)果。
如果你看到了上面的輸出信息,這表明兩個(gè)驗(yàn)校值相匹配。這樣已下載 ISO 鏡像的完整性就被成功的驗(yàn)證了。
相關(guān)文章
Linux系統(tǒng)中校驗(yàn)下載文件的完整性方法(MD5,SHA1,PGP)
對(duì)文件進(jìn)行MD5 Hash,求出文件的MD5哈希值,通過下載后文件MD5哈希值和發(fā)布者提供的MD5哈希值是否一致來判斷文件是否在發(fā)布者發(fā)布之后被篡改過2014-04-20

