GPG

Install

macOS

brew install gpg2

Other

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 設定檔的所在路徑

從上述版本資訊可以看到一個 Home: 欄位,這裡指出 gpg-agent.conf 設定檔的所在路徑!

常見的 gpg-agent.conf 設定檔路徑,若沒有出現可自行增加

調整 gpg-agent 快取時間

延長快取時間的 gpg-agent.conf 設定內容範例 單位:秒 (Seconds)

重新載入 gpg-agent.conf 設定

查詢目前 gpg-agent.conf 設定

關閉 gpg-agent 背景程式

GPG Mail

Last updated