如何为现有的 GitHub 账户设置 GPG 密钥(分步指南)

发布: (2026年1月18日 GMT+8 19:40)
4 min read
原文: Dev.to

Source: Dev.to

什么是 GPG 密钥以及它为何重要?

GPG(GNU Privacy Guard)是一种用于以下目的的工具:

  • 对提交和标签进行数字签名
  • 证明作者身份和完整性
  • 提升协作项目的安全性和可信度

签名提交的好处

  • 你的提交将在 GitHub 上显示为 Verified(已验证)
  • 防止提交伪造
  • 提升作为开发者的可信度

先决条件

  • GitHub 账户
  • 已安装 Git
  • 系统已安装 GPG
  • 终端访问权限

步骤 1:检查是否已安装 GPG

gpg --version

如果未安装 GPG:

Ubuntu / Debian

sudo apt update && sudo apt install gnupg

macOS (Homebrew)

brew install gnupg

Windows

Install Gpg4win from the official site.

步骤 2:生成新的 GPG 密钥

gpg --full-generate-key

提示时:

  • 密钥类型: RSA 和 RSA
  • 密钥大小: 4096
  • 有效期: 选择适合你的期限(例如 1y0 表示永不过期)
  • 姓名和电子邮件: 使用与你的 GitHub 账户相同的电子邮件地址
  • 密码短语: 使用强密码(别忘记)

完成后,你的 GPG 密钥已创建。

步骤 3:列出你的 GPG 密钥并复制密钥 ID

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

示例输出:

/home/nyaugenya/.gnupg/pubring.kbx
----------------------------------
sec   rsa3072/CBC3C9CAC3450592 2025-12-17 [SC] [expires: 2027-12-17]
      DD88627124BA164FD7D531C8CBC3C9CAC3450592
uid                 [ultimate] nyaugenya (go!!!) 
ssb   rsa3072/4DB25F105F5D7F76 2025-12-17 [E] [expires: 2027-12-17]

复制 rsa4096/ 后的密钥 ID(例如 DD88627124BA164FD7D531C8CBC3C9CAC3450592)。

步骤 4:导出 GPG 公钥

gpg --armor --export DD88627124BA164FD7D531C8CBC3C9CAC3450592

复制整个输出,包括 -----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK----- 行。

步骤 5:将 GPG 密钥添加到 GitHub

  1. 前往 GitHub → Settings(设置)
  2. 点击 SSH and GPG keys(SSH 与 GPG 密钥)
  3. GPG keys(GPG 密钥) 下,点击 New GPG key(新建 GPG 密钥)
  4. 粘贴复制的公钥。
  5. 点击 Add GPG key(添加 GPG 密钥)

GitHub 现在已识别你的签名密钥。

步骤 6:告诉 Git 使用你的 GPG 密钥

使用你的密钥 ID 配置 Git:

git config --global user.signingkey DD88627124BA164FD7D531C8CBC3C9CAC3450592

默认启用提交签名:

git config --global commit.gpgsign true

确保你的 Git 邮箱与 GitHub 相匹配:

git config --global user.email "odhiamborose466@gmail.com"

配置 Git 自动对你创建的所有标签进行 GPG 签名:

git config --global tag.gpgSign true

步骤 7:(Linux)修复 “GPG Failed to Sign the Data” 错误

如果遇到此错误,运行:

export GPG_TTY=$(tty)

使其永久生效:

echo 'export GPG_TTY=$(tty)' >> ~/.bashrc
source ~/.bashrc

步骤 8:创建签名提交

创建普通提交(由于全局设置,Git 会自动签名):

git commit -m "My first signed commit"

或显式签名提交:

git commit -S -m "Signed commit"

推送你的更改:

git push

你的提交现在应在 GitHub 上显示为 Verified(已验证)

Back to Blog

相关文章

阅读更多 »