1. 程式人生 > >Linux實用工具之GPG

Linux實用工具之GPG

gpg gnupg 對稱加密

前言:


GPG是自由軟件基金會開發用於替代商業加密軟件PGP的替代品,取名為GnuPG。GPG有許多用途,本文主要介紹文件加密。紅帽系列Linux中軟件包為gnupg2


對稱加密方式:

1、實用gpg完成文件加密

使用方法:gpg -c file

在彈出頁面輸入兩遍口令即可加密文件,加密後會生成原文件名加.gpg的加密文件,註意此時未加密文件仍然存在,可刪除原文件。

技術分享

2、查出加密文件

使用方法:gpg -d 加密文件

在彈出如上圖界面輸入口令即可查看文件

3、把加密的文件解密出來

使用方法:gpg -o newfilename -d file.gpg


非對稱加密方式:


一、秘鑰生成

1.1 在hostA主機上生成公鑰/私鑰對
gpg --gen-key

技術分享

選擇加密算法界面,這裏選擇1默認加密和證書都使用RSA算法。

1.2 設定密碼長度

技術分享

輸入秘鑰長度,越長越安全。這裏直接回車默認2048位。

1.3 設定密碼有效期

技術分享

如確定秘鑰可以妥善管理可以選擇“0”,永不過期。

1.4 輸入姓名郵箱信息

技術分享

1.5 在彈出框內輸入加密私鑰口令

1.6系統就開始生成密鑰

這時需多做些瑣事(像是敲打鍵盤、移動鼠標、讀寫硬盤之類的),這會讓隨機數字發生器有更好的機會獲得足夠的熵數。

1.7生成秘鑰成功

技術分享

字符串"EDDD6D76",這是"用戶ID"的Hash字符串,可以用來替代"用戶ID"。

二、秘鑰管理

2.1 查看秘鑰

技術分享

2.2 刪除秘鑰及撤銷證書

#刪除列表中某公鑰
gpg --delete-keys [用戶ID] #用戶名ID可以為hash碼或郵箱、用戶名
#刪除列表中某私鑰
gpg --delete-secret-keys [用戶ID] 
#撤銷證書
gpg --gen-revoke [用戶ID]

2.3 上傳公鑰到服務器

gpg --send-keys [用戶ID] --keyserver hkp://subkeys.pgp.net

由於公鑰服務器沒有檢查機制,任何人都可以用你的名義上傳公鑰,所以沒有辦法保證服務器上的公鑰的可靠性。通常,你可以在網站上公布一個公鑰指紋,讓其他人核對下載到的公鑰是否為真。fingerprint參數生成公鑰指紋。

gpg --fingerprint [用戶ID]


三、 實現公鑰加密傳輸

3.1 在hostA主機上導出公鑰到wang.pubkey

gpg -a --export -o wang.pubkey

hostA主機上復制公鑰文件到需加密的B主機上

scp wang.pubkey hostB:

3.2 在需加密數據的hostB主機上生成公鑰/私鑰對

gpg --list-keys
gpg --gen-key

hostB主機上導入公鑰

gpg --import wang.pubkey
gpg --list-keys

3.3 用從hostA主機導入的公鑰,加密hostB主機的文件file,生成

file.gpg
gpg -e -r wangxiaochun file
file file.gpg

復制加密文件到hostA主機

scp fstab.gpg hostA:

3.4 在hostA主機解密文件

gpg -d file.gpg
gpg -o file -d file.gpg


四、簽名&驗證簽名

4.1 對文件簽名

不加密文件,只需要對文件簽名,表示這個文件確實是本人發出的。sign參數用來簽名。

 gpg --sign demo.txt

運行上面的命令後,當前目錄下生成demo.txt.gpg文件,這就是簽名後的文件。這個文件默認采用二進制儲存,

4.2 如果想生成ASCII碼的簽名文件,可以使用clearsign參數。 

 gpg --clearsign demo.txt

運行上面的命令後 ,當前目錄下生成demo.txt.asc文件,後綴名asc表示該文件是ASCII碼形式的。

4.3 如果想生成單獨的簽名文件,與文件內容分開存放,可以使用detach-sign參數。

gpg --detach-sign demo.txt

運行上面的命令後,當前目錄下生成一個單獨的簽名文件demo.txt.sig。該文件是二進制形式的,如果想采用ASCII碼形式,要加上armor參數。

gpg --armor --detach-sign demo.txt

4.4 驗證簽名

收到別人簽名後的文件,需要用對方的公鑰驗證簽名是否為真。verify參數用來驗證。

 gpg --verify demo.txt.asc demo.txt



本文出自 “linux運維” 博客,請務必保留此出處http://arm2012.blog.51cto.com/2418467/1972546

Linux實用工具之GPG