如何使用 GPG 密钥签署你的 git 提交

当你查看开源仓库或专业项目时,你可能会注意到某些提交有一个”已验证”(Verified)标志。这些签名提交证明了作者的身份,并为代码库增加了额外的信任层。
使用 GPG 密钥签署你的 Git 提交设置简单,并能清晰地证明提交确实来自于你。
在本文中,你将学习如何创建 GPG 密钥,配置 Git 使用它,并开始自动签署你的提交。
关键要点
- 签署 Git 提交可验证你的身份并提高项目信任度
- 设置 GPG 提交签名涉及生成密钥和配置 Git
- 签名提交对开源和企业工作尤为重要
为什么要签署 Git 提交?
- 作者身份证明:他人可以验证提交确实由你完成,而非冒充者。
- 信任和安全:在开源、企业和敏感仓库中至关重要。
- 专业标准:在许多工程工作流程中越来越被期望。
签名提交在 GitHub 等平台上会显示”已验证”标签。
如何生成 GPG 密钥
首先,检查你是否已有 GPG 密钥:
gpg --list-secret-keys --keyid-format=long
如果需要创建一个:
gpg --full-generate-key
当提示时:
- 选择默认选项(RSA 和 RSA)
- 将密钥大小设置为 4096 位
- 设置过期时间(可选,通常为 1 年)
- 输入你的姓名和电子邮件(如果使用 GitHub,必须与你的 GitHub 账户匹配)
创建后,列出你的密钥:
gpg --list-secret-keys --keyid-format=long
找到与你的电子邮件关联的 GPG 密钥 ID(一个长字符串)。
如何配置 Git 使用你的 GPG 密钥
- 告诉 Git 自动签署提交:
git config --global commit.gpgsign true
- 为 Git 设置你的 GPG 密钥:
git config --global user.signingkey YOUR_KEY_ID
将 YOUR_KEY_ID
替换为你之前找到的密钥 ID。
- 确保 Git 使用 GPG:
git config --global gpg.program gpg
现在,你创建的所有新提交都将自动签名。
如何将你的 GPG 密钥上传到 GitHub
如果你想在 GitHub 上获得”已验证”标志:
- 导出你的公钥:
gpg --armor --export YOUR_EMAIL
- 复制整个输出。
- 前往 GitHub > 设置 > SSH 和 GPG 密钥 > 新建 GPG 密钥。
- 粘贴你的公钥并保存。
现在,GitHub 可以验证你的签名提交了。
签名问题故障排除
- GPG 代理提示:某些系统需要额外配置来缓存你的密码。
- 电子邮件地址错误:你的 GPG 密钥电子邮件必须与你的 GitHub 电子邮件匹配(或添加到你的 GitHub 账户中)。
- 缺少 gpg:确保已安装 GPG(
gpg --version
)。如果需要,通过 Homebrew、apt 或你系统的包管理器安装它。
结论
使用 GPG 密钥签署 Git 提交可增强项目的安全性和完整性。这是一个小小的额外步骤,但它表明了专业性,并建立了与合作者、用户和更广泛开发者社区的信任。
常见问题
是的。如果你没有启用全局签名,可以使用 `git commit -S` 手动签署提交。
是的。你可以配置 GitHub Actions 工作流使用 GPG 密钥进行签名提交或标签。
不,它是可选的。但在开源和企业项目中,它越来越被鼓励使用。
Listen to your bugs 🧘, with OpenReplay
See how users use your app and resolve issues fast. Loved by thousands of developers