跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Linux 安全:如何用 Git 提交签名 (GPG) 保证提交者身份

首先生成GPG密钥对并设置基本信息,然后导出公钥添加到GitHub等平台,接着配置Git使用该密钥签名并确保邮箱一致,最后提交时自动签名,验证成功后显示“Verified”标签。

在使用 Git 进行版本控制时,确保提交来源的真实性非常重要。尤其是在开源项目或团队协作中,你希望确认每一条提交确实来自声称的开发者。Linux 环境下,可以通过 GPG(GNU Privacy Guard)签名 Git 提交来验证提交者身份。下面介绍如何配置并使用 GPG 对 Git 提交进行签名。

生成 GPG 密钥对要使用 GPG 签名,首先需要在本地生成一个密钥对:gpg --full-generate-key按照提示选择密钥类型(通常选 RSA)、密钥长度(推荐 4096 位)、设置有效期、输入用户名和邮箱(建议与 Git 账户一致)。完成后,GPG 会生成一对公私钥。

查看已生成的密钥:

gpg --list-secret-keys --keyid-format LONG输出中找sec行,格式如rsa4096/ABC12345DEF67890,其中ABC12345DEF67890就是你的密钥 ID。

将 GPG 公钥添加到 Git 平台为了让他人验证你的提交,需将公钥上传到代码托管平台,例如 GitHub、GitLab 等。

导出公钥内容:

gpg --armor --export ABC12345DEF67890复制输出内容(以-----BEGIN PGP PUBLIC KEY BLOCK-----开头),粘贴到 GitHub 的Settings → SSH and GPG keys → New GPG key中保存。

配置 Git 使用 GPG 签名告诉 Git 使用哪个 GPG 密钥进行签名:gitconfig --global user.signingkey ABC12345DEF67890启用提交签名(可针对全局或单个项目):CentOS Linux 7.9.2009 CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。

下载git config --global commit.gpgsign true

如果只想对当前项目启用:

git config commit.gpgsign true同时确保 Git 使用的邮箱与 GPG 密钥绑定的邮箱一致:git config --global user.email "your-email@example.com"提交代码并验证签名当你执行提交时,Git 会自动调用 GPG 进行签名:git commit -m "Fix login bug"若首次使用,系统可能会弹出窗口要求输入 GPG 密钥的密码。签名成功后,该提交就带有可信身份信息。

查看某次提交是否签名:

git log --show-signature -1输出中包含gpg: Good signature表示签名有效。

推送后,在 GitHub 上提交记录旁会出现 “Verified” 标签,表示提交已通过 GPG 验证。

基本上就这些。配置一次后,后续提交都会自动签名,帮助你建立可信赖的开发身份。安全虽小,积累成信。

相关文章