12k
All articles

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

介绍如何生成 GPG 密钥对,将 Git 配置为自动签署每次提交,并将公钥上传至 GitHub,从而使提交记录显示 Verified 已验证徽章。

OpenReplay Team
OpenReplay Team
如何使用 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 签名吗?

是的。你可以配置 GitHub Actions 工作流使用 GPG 密钥进行签名提交或标签。

GPG 签名是必需的吗?

不,它是可选的。但在开源和企业项目中,它越来越被鼓励使用。

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers

We use cookies to improve your experience. By using our site, you accept cookies.