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