如何使用GPG加解密文件
目標(biāo):使用 GPG 加密文件
發(fā)行版:適用于任何發(fā)行版
要求:安裝了 GPG 的 Linux 或者擁有 root 權(quán)限來(lái)安裝它。
難度:簡(jiǎn)單
約定:
- # - 需要使用 root 權(quán)限來(lái)執(zhí)行指定命令,可以直接使用 root 用戶(hù)來(lái)執(zhí)行,也可以使用 sudo 命令
- $ - 可以使用普通用戶(hù)來(lái)執(zhí)行指定命令
介紹
加密非常重要。它對(duì)于保護(hù)敏感信息來(lái)說(shuō)是必不可少的。你的私人文件應(yīng)該要被加密,而 GPG 提供了很好的解決方案。
安裝 GPG
GPG 的使用非常廣泛。你在幾乎每個(gè)發(fā)行版的倉(cāng)庫(kù)中都能找到它。如果你還沒(méi)有安裝它,那現(xiàn)在就來(lái)安裝一下吧。
Debian/Ubuntu
- $ sudo apt install gnupg
Fedora
- # dnf install gnupg2
Arch
- # pacman -S gnupg
Gentoo
- # emerge --ask app-crypt/gnupg
創(chuàng)建密鑰
你需要一個(gè)密鑰對(duì)來(lái)加解密文件。如果你為 SSH 已經(jīng)生成過(guò)了密鑰對(duì),那么你可以直接使用它。如果沒(méi)有,GPG 包含工具來(lái)生成密鑰對(duì)。
- $ gpg --full-generate-key
GPG 有一個(gè)命令行程序可以幫你一步一步的生成密鑰。它還有一個(gè)簡(jiǎn)單得多的工具,但是這個(gè)工具不能讓你設(shè)置密鑰類(lèi)型,密鑰的長(zhǎng)度以及過(guò)期時(shí)間,因此不推薦使用這個(gè)工具。
GPG 首先會(huì)詢(xún)問(wèn)你密鑰的類(lèi)型。沒(méi)什么特別的話(huà)選擇默認(rèn)值就好。
下一步需要設(shè)置密鑰長(zhǎng)度。4096 是一個(gè)不錯(cuò)的選擇。
之后,可以設(shè)置過(guò)期的日期。 如果希望密鑰永不過(guò)期則設(shè)置為 0。
然后,輸入你的名稱(chēng)。
最后,輸入電子郵件地址。
如果你需要的話(huà),還能添加一個(gè)注釋。
所有這些都完成后,GPG 會(huì)讓你校驗(yàn)一下這些信息。
GPG 還會(huì)問(wèn)你是否需要為密鑰設(shè)置密碼。這一步是可選的, 但是會(huì)增加保護(hù)的程度。若需要設(shè)置密碼,則 GPG 會(huì)收集你的操作信息來(lái)增加密鑰的健壯性。 所有這些都完成后, GPG 會(huì)顯示密鑰相關(guān)的信息。
加密的基本方法
現(xiàn)在你擁有了自己的密鑰,加密文件非常簡(jiǎn)單。 使用下面的命令在 /tmp 目錄中創(chuàng)建一個(gè)空白文本文件。
- $ touch /tmp/test.txt
然后用 GPG 來(lái)加密它。這里 -e 標(biāo)志告訴 GPG 你想要加密文件, -r 標(biāo)志指定接收者。
- $ gpg -e -r "Your Name" /tmp/test.txt
GPG 需要知道這個(gè)文件的接收者和發(fā)送者。由于這個(gè)文件給是你的,因此無(wú)需指定發(fā)送者,而接收者就是你自己。
解密的基本方法
你收到加密文件后,就需要對(duì)它進(jìn)行解密。 你無(wú)需指定解密用的密鑰。 這個(gè)信息被編碼在文件中。 GPG 會(huì)嘗試用其中的密鑰進(jìn)行解密。
- $ gpg -d /tmp/test.txt.gpg
發(fā)送文件
假設(shè)你需要發(fā)送文件給別人。你需要有接收者的公鑰。 具體怎么獲得密鑰由你自己決定。 你可以讓他們直接把公鑰發(fā)送給你, 也可以通過(guò)密鑰服務(wù)器來(lái)獲取。
收到對(duì)方公鑰后,導(dǎo)入公鑰到 GPG 中。
- $ gpg --import yourfriends.key
這些公鑰與你自己創(chuàng)建的密鑰一樣,自帶了名稱(chēng)和電子郵件地址的信息。 記住,為了讓別人能解密你的文件,別人也需要你的公鑰。 因此導(dǎo)出公鑰并將之發(fā)送出去。
- gpg --export -a "Your Name" > your.key
現(xiàn)在可以開(kāi)始加密要發(fā)送的文件了。它跟之前的步驟差不多, 只是需要指定你自己為發(fā)送人。
- $ gpg -e -u "Your Name" -r "Their Name" /tmp/test.txt
結(jié)語(yǔ)
就這樣了。GPG 還有一些高級(jí)選項(xiàng), 不過(guò)你在 99% 的時(shí)間內(nèi)都不會(huì)用到這些高級(jí)選項(xiàng)。 GPG 就是這么易于使用。你也可以使用創(chuàng)建的密鑰對(duì)來(lái)發(fā)送和接受加密郵件,其步驟跟上面演示的差不多, 不過(guò)大多數(shù)的電子郵件客戶(hù)端在擁有密鑰的情況下會(huì)自動(dòng)幫你做這個(gè)動(dòng)作。