前言

前陣子在 GitHub 上,偶然看到同事的 commit 後面有綠色的 Verified 標示,我的卻沒有。

有那個 Verified 標示看起來就比較厲害,j我也想要有!

搜尋一下,原來是需要透過 GPG 簽署才有這個功能,我目前使用的 SSH 不支援,因此,需要更換簽署。

其實 GitHub 的官網文件已經寫得很完整了,下方就是翻譯以及節錄重點。


開始更換

安裝 GPG

GnuPG’s Download page 下載,根據你的作業系統選擇。我是下載 GnuPG binary releases 下方的 Gpg4win (Windows)。

檢查已存在的 GPG keys

  1. 打開 Git Bash。注意: 使用 VSCode 的 powershell 會找不到 GPG 工具哦
  2. 檢查已經存在的 public and private key
    gpg --list-secret-keys --keyid-format=long
    

產生 GPG key

  1. 打開 Git Bash

  2. 產生 GPG key pair

    gpg --full-generate-key
    
  3. 根據顯示的內容回答,或是按 ‘enter’ 接收預設值設定

  4. 輸入你的 ID,記得 email 要填寫跟 GitHub 相同的 email

  5. 輸入安全密碼

  6. 列出剛才產生的 Key

    gpg --list-secret-keys --keyid-format=long
    
  7. 你會看到類似下方結果,3AA5C34371567BD2 就是此範例的 key ID 囉

    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot <hubot@example.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  8. 將下面的範例 ID 替換成你的

    gpg --armor --export 3AA5C34371567BD2
    # Prints the GPG key ID, in ASCII armor format
    
  9. 複製 GPG key,從 -----BEGIN PGP PUBLIC KEY BLOCK----- 一直複製到 -----END PGP PUBLIC KEY BLOCK-----

  10. 將此 GPG key 加入到你的 GitHub 帳號

加入 GPG Key

  1. 點擊個人頭像,進入 Settings
  2. click SSH and GPG keys
  3. click New GPG key.
  4. 將剛剛的複製的 Key 貼上
  5. 完成

備註: 此動作需要 2FA

向 Git 通知你的 GPG key

  1. 打開 Git Bash
  2. 如果你之前有使用不同的金鑰格式,需要取消
    git config --global --unset gpg.format
    
  3. 向 Git 設定你的主要 GPG signing key。3AA5C34371567BD2 為範例 ID
    git config --global user.signingkey 3AA5C34371567BD2
    

以上,就完成 GPG 註冊啦。趕快開一個 Repo 測試看看吧。

小插曲

我在第一次設定完後,並沒有成功看到綠色的 Verified,於是又重頭回去檢查前面哪些步驟出錯。

後來發現是我的 git config 設定,user.email 是我個人的 email,又來修改成公司的 email 後,就成功出現 Verified 啦!