Back

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

如何使用 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 密钥

  1. 告诉 Git 自动签署提交:
git config --global commit.gpgsign true
  1. 为 Git 设置你的 GPG 密钥:
git config --global user.signingkey YOUR_KEY_ID

YOUR_KEY_ID 替换为你之前找到的密钥 ID。

  1. 确保 Git 使用 GPG:
git config --global gpg.program gpg

现在,你创建的所有新提交都将自动签名。

相关:设置 Git 提交模板:分步指南

如何将你的 GPG 密钥上传到 GitHub

如果你想在 GitHub 上获得”已验证”标志:

  1. 导出你的公钥:
gpg --armor --export YOUR_EMAIL
  1. 复制整个输出。
  2. 前往 GitHub > 设置 > SSH 和 GPG 密钥 > 新建 GPG 密钥。
  3. 粘贴你的公钥并保存。

现在,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