如何產生一把全新的 GPG金鑰

[重要] https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key

支援的GPG 金鑰演算法

GitHub 支援多種GPG 金鑰演算法。 如果您嘗試新增使用不支援的演算法產生的金鑰,可能會發生錯誤。

  • RSA
  • ElGamal
  • DSA
  • ECDH
  • ECDSA
  • EdDSA

產生GPG 金鑰

注意

在產生新GPG 金鑰之前,請確保已驗證你的電子郵件地址。 如果尚未驗證電子郵件地址,將無法使用GPG 對提交和標記進行簽署。有關詳細信息,請參閱“驗證電子郵件地址”。

  1. 下載並安裝適用於作業系統的GPG 命令列工具。 一般來說,我們建議安裝適用於您的作業系統的最新版本。

  2. 打開Git Bash。

  3. 產生GPG 金鑰對。 由於GPG 有多個版本,因此可能需要查閱相關手冊頁來尋找對應的金鑰產生指令。

    • 如果您使用的是2.1.17 或更高版本,請貼上以下文字以產生GPG 金鑰對。
      Shell
      1
      gpg --full-generate-key
    • 如果使用的不是版本2.1.17 或更高版本,則gpg --full-generate-key指令不起作用。 請貼上以下文字並跳到第6 步。
      Shell
      1
      gpg --default-new-key-algo rsa4096 --gen-key
  4. 在提示時,指定要產生的金鑰類型,或按Enter鍵接受預設值。

  5. 在提示時,指定要產生的金鑰大小,或按Enter鍵接受預設值。

  6. 輸入密鑰的有效時長。 按Enter鍵將指定預設選擇,表示該金鑰不會過期。 除非你需要過期日期,否則我們建議接受此預設值。

  7. 驗證您的選擇是否正確。

  8. 輸入您的使用者ID 資訊。
    注意

    要求你輸入電子郵件地址時,請確保輸入GitHub 帳戶的經過驗證的電子郵件地址。 若要將電子郵件地址保密,請使用GitHub 提供的no-reply電子郵件地址。 有關詳細信息,請參閱“驗證電子郵件地址”和“設定提交電子郵件地址”。

  9. 輸入安全密碼。

  10. 使用gpg --list-secret-keys --keyid-format=long指令列出你擁有其公鑰和私鑰的長形式GPG 金鑰。 簽名提交或標記需要私鑰。
    Shell

    1
    gpg --list-secret-keys --keyid-format=long

    注意

    Linux 上的某些GPG 安裝可能需要改用gpg2 --list-keys --keyid-format LONG查看現有金鑰的清單。 在這種情況下,還需要透過運行git config --global gpg.program gpg2來配置Git 以使用gpg2

  11. 從GPG 金鑰清單複製您想要使用的GPG 金鑰ID 的長形式。 在本例中,GPG 金鑰ID 為3AA5C34371567BD2
    Shell

    1
    2
    3
    4
    5
    6
    $ 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
  12. 貼上下面的文字(替換為您要使用的GPG 金鑰ID)。 在本例中,GPG 金鑰ID 為3AA5C34371567BD2
    Shell

    1
    2
    gpg --armor --export 3AA5C34371567BD2
    # Prints the GPG key ID, in ASCII armor format
  13. 複製以-----BEGIN PGP PUBLIC KEY BLOCK-----開頭並以-----END PGP PUBLIC KEY BLOCK-----結尾的GPG 金鑰。

  14. 將GPG 金鑰新增至GitHub 帳戶

延伸閱讀