當你的私鑰超過一個的時候 下指令的時候 需要指定使用哪一個 <user-id>
-u <user-id>
or
—local-user <local-user>
在指定 key 時 你可以填 下列任意一個
- key UID
- key ID
- key fingerprint
- part of your name
- part of your eamil
gpg 加密檔案
假設 message.txt 要被加密
$ gpg -a --output message-ciper.txt -r <user-id> -e message.txt
-a, --armor 輸出 ASCII 格式(預設是二進制格式)
-o, --output 指定輸出檔案的檔名 (加密後的檔名)
-r 指定檔案的接收者(recipient)公鑰的 uid or id
-e 執行加密(encrypt)操作
如果你要加密的檔案是二進制檔案 可省略 -a (產生的加密檔案會比較小)
gpg 解密檔案
$ gpg --output message-plain.txt -d message-ciper.txt
-o, --output 指定輸出檔案的檔名 (解密後的檔名)
-d 執行解密(decrypt)操作
gpg 對檔案進行數字簽名
數字簽名 - 分離式簽名
假設有一檔案 message.txt 對它進行數字簽名
$ gpg -a -b message.txt
-a, --armor 輸出 ASCII 格式(預設是二進制格式)
-b 產生獨立的簽名檔案
產生檔案 message.txt.asc
驗證數字簽名
$ gpg --verify message.txt.asc
Good signature 表示通過檢驗 否則表示沒通過檢驗
對檔案進行數字簽名 (合併簽名檔與原檔案)
$ gpg -a --clearsign message.txt
--clearsign 將數字簽名和原檔案合併 產生一個新檔案
執行後 建立 message.txt.asc
驗證數字簽名
$ gpg --verify message.txt.asc
提領出原檔案
$ gpg --output message-original.txt -d message.txt.asc
gpg 加密 + 數字簽名
>>> gpg -u <發信者 ID> --recipient <接收者 ID> -a --sign -e message.txt
-u, --local-user 指定用發信者的私鑰
--sign 表示進行簽名
加密 密碼
有些軟體設定檔的某些欄位需要填入密碼
例如 Mutt - Passwords management
建立一個檔案
$ touch your_password_file
在那一個檔案內 寫下你的密碼(在密碼後面必須保留一行空行 否則 gpg 會報錯)
$ gpg -e -a -r <user-id> your_password_file
$ shred -xu ./your_password_file
留下 your_password_file.asc
gpg 對稱式加密
$ gpg -o doc.gpg -c doc.txt
-c 採用對稱式加密
解密
$ gpg -o orig-doc.txt -d doc.gpg