GPG
Install
macOS
brew install gpg2Other
Download Link: Gnupg
產生金鑰
> gpg --full-generate-key
請選擇你要使用的金鑰種類:
(1) RSA 和 RSA (預設)
(2) DSA 和 Elgamal
(3) DSA (僅能用於簽署)
(4) RSA (僅能用於簽署)
你要選哪一個?1
# 建議 4096 位元
RSA 金鑰的長度可能介於 1024 位元和 4096 位元之間。
你想要用多大的金鑰尺寸?(2048) 4096
你所要求的金鑰尺寸是 4096 位元
請指定這把金鑰的有效期限是多久。
0 = 金鑰不會過期
<n> = 金鑰在 n 天後會到期
<n>w = 金鑰在 n 週後會到期
<n>m = 金鑰在 n 月後會到期
<n>y = 金鑰在 n 年後會到期
金鑰的有效期限是多久?(0) 0
金鑰完全不會過期
# 確認
GnuPG 需要建構使用者 ID 以識別你的金鑰。
真實姓名:<Name>
電子郵件地址:<Email>
註釋:
你選擇了這個使用者 ID:
"<Name> <<Email>>"
變更姓名 (N), 註釋 (C), 電子郵件地址 (E) 或確定 (O)/退出 (Q)? O產生完成
GPG Keys 的 Fingerprint (指紋) A7935E31448D6D55E6A90F31DF7D85F066F4FC1D
提交到 Github/GitLab
取得 GPG key ID: DF7D85F066F4FC1D
GPG Fingerprint: A7935E31448D6D55E6A90F31DF7D85F066F4FC1D
產生 public key
提交包含簽署的 Commit
在 commit 時加上 -S
預設加上 -S
故障排除
如果在下 git commit 後出現這個錯誤:
請嘗試以下兩種解法
解法一
請執行 echo "test" | gpg --clearsign 檢查看看是 git 的問題還是 gpg 的問題。
如果可以執行正常,請檢查 git 設定是否正確,否之如果出現這個錯誤:
請將 export GPG_TTY=$(tty) 加到你的 .bashrc 或 .zshrc,之後重啟終端機或執行重讀指令 . ~/.zshrc or . ~/.bashrc
再執行一次 echo "test" | gpg --clearsign 看看是成功執行。
解法二
安裝 pinentry-mac
如果出現 No such file or directory
執行下列
找出 gpg-agent.conf 設定檔的所在路徑
gpg-agent.conf 設定檔的所在路徑從上述版本資訊可以看到一個 Home: 欄位,這裡指出 gpg-agent.conf 設定檔的所在路徑!
常見的 gpg-agent.conf 設定檔路徑,若沒有出現可自行增加
gpg-agent.conf 設定檔路徑,若沒有出現可自行增加調整 gpg-agent 快取時間
gpg-agent 快取時間延長快取時間的 gpg-agent.conf 設定內容範例 單位:秒 (Seconds)
重新載入 gpg-agent.conf 設定
查詢目前 gpg-agent.conf 設定
關閉 gpg-agent 背景程式
gpg-agent 背景程式GPG Mail
官方為版本買斷制 定價
使用 Free-GPGMail 來取代
Last updated