如何为现有的 GitHub 账户设置 GPG 密钥(分步指南)
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
- 有效期: 选择适合你的期限(例如
1y或0表示永不过期) - 姓名和电子邮件: 使用与你的 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
- 前往 GitHub → Settings(设置)。
- 点击 SSH and GPG keys(SSH 与 GPG 密钥)。
- 在 GPG keys(GPG 密钥) 下,点击 New GPG key(新建 GPG 密钥)。
- 粘贴复制的公钥。
- 点击 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(已验证)。