Git 提交签名

Jul 29, 2025 · 1363 字

Git 提交签名是一个重要的安全特性,它可以确保提交的真实性和完整性。通过使用 GPG 密钥对提交进行签名,其他人可以验证提交确实是由特定的开发者创建的。在 GitHub 上表现为一个绿色的 Verified 标签。

可以使用 GPG、SSH 或 X.509 密钥签名。

使用 GPG 密钥

如果你使用 Windows,可以使用下面的命令先安装 GPG:

winget install GnuPG.Gpg4win

然后生成一个新的 GPG 密钥:

gpg --full-generate-key

在生成过程中,选择 RSA and RSA,密钥大小可以选择 4096,有效期可以设置为 0(永不过期),然后输入你的姓名和电子邮件地址。

生成完成后,你可以使用下面的命令查看你的 GPG 密钥:

gpg --list-secret-keys --keyid-format LONG

这条命令会显示你的 GPG 密钥 ID,类似于 3AA5C34371567BD2

然后使用下面的命令查看你的 GPG 公钥:

gpg --armor --export 3AA5C34371567BD2

在 GitHub 上添加 GPG 公钥即可。

最后记得在 Git 配置中设置你的 GPG 密钥:

git config --global user.signingkey 3AA5C34371567BD2

使用 SSH 密钥

注意:SSH 密钥签名需要 Git 2.34 或更高版本。

用于签名提交的密钥和认证密钥可以是同一个 SSH 密钥。你也可以使用下面的命令来生成一个新的 SSH 密钥:

ssh-keygen -C "your_email@example.com"

注意过程中需要重命名防止覆盖掉已有的密钥。

然后在 GitHub 上添加 SSH 公钥,类型选择为 Signing key

然后在 Git 配置中启用 SSH 签名:

git config --global gpg.format ssh
git config --global user.signingkey path/to/your/ssh/key

对提交进行签名

只需要在提交时添加 -S 选项即可:

git commit -S -m "Your commit message"

你也可以设置为默认签名提交:

git config --global commit.gpgsign true

参考文档

粤公网安备44030002006951号 粤ICP备2025414119号

© 2025 Saurlax · Powered by Astro