使用 GPG 签名你的 Git Commit
在团队协作或开源项目中,确保提交的真实性和可信度非常重要。Git 提交虽然记录了作者信息,但这些信息可以被轻易伪造。为了验证提交确实来自于你本人,可以使用 GPG(GNU Privacy Guard)签名 Git Commit。
本文将介绍如何配置并使用 GPG 为你的 Git 提交签名。
一、为什么要使用 GPG 签名?
防止身份伪造:确保提交来自真实的开发者,而不是被伪造的用户信息。
增强可信度:在 GitHub、GitLab 等平台上,带有 ✅“Verified” 标记的提交更有公信力。
安全合规:一些公司或开源项目要求提交必须签名。
二、安装 GPG
大多数系统都可以直接安装 GPG:
Linux (Debian/Ubuntu)
sudo apt update
sudo apt install gnupg -y
macOS (使用 Homebrew)
brew install gnupg
Windows
可以通过 Gpg4win 安装。
三、生成 GPG 密钥
执行命令生成新密钥:
gpg --full-generate-key
选择密钥类型,一般选择 RSA and RSA(默认)。
推荐选择 4096 位 长度,安全性更高。
输入以下信息:
Name:与你的 Git 用户名一致
Email:与你的 Git 配置邮箱一致
Passphrase:用于保护密钥
生成完成后,可以通过以下命令查看密钥:
gpg --list-secret-keys --keyid-format=long
输出类似:
/home/user/.gnupg/secring.gpg
------------------------------------
sec rsa4096/3AA5C34371567BD2 2025-09-23 [SC]
9FDE7DDA764A1234567890ABCDEF1234567890AB
uid [ultimate] Your Name <youremail@example.com>
ssb rsa4096/1234567890ABCDEF 2025-09-23 [E]
其中 3AA5C34371567BD2 就是你的 GPG key ID。
四、配置 Git 使用 GPG
设置全局 Git 配置使用该密钥:
git config --global user.signingkey 3AA5C34371567BD2默认开启提交签名:
git config --global commit.gpgsign true(可选)如果你还希望标签签名:
git config --global tag.gpgsign true
五、导出公钥并添加到 Git 托管平台
导出你的公钥:
gpg --armor --export your_email@example.com复制输出内容,登录 GitHub/GitLab:
GitHub: Settings → SSH and GPG keys → New GPG key
GitLab: Preferences → GPG Keys
粘贴公钥并保存。
六、测试 GPG 签名提交
新建一次提交:
git commit -S -m "feat: 使用 GPG 签名提交"
如果配置成功,GitHub 上会显示 Verified ✅ 标签。
七、常见问题
1. 提交时报错 gpg: signing failed: No secret key
说明 Git 找不到私钥。检查:
git config --global user.signingkey
是否与 gpg --list-secret-keys 的 ID 一致。
2. 每次提交都要输入 Passphrase?
可以使用 gpg-agent 缓存口令,或在 macOS 上使用 pinentry-mac。
八、总结
通过为 Git 提交添加 GPG 签名,你可以:
提升提交的安全性和可信度
获得平台上的 Verified 标识
防止身份伪造和代码篡改
这是一个良好的开发习惯,建议所有开发者都配置。