news 2026/4/23 11:37:59

SSH Key 与 GPG Key 区别详解:Git 使用中的身份与签名机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SSH Key 与 GPG Key 区别详解:Git 使用中的身份与签名机制

一、先给结论(重点)

SSH key 和 GPG key 都不是“必须同时配置”
但它们的功能几乎不重叠,是做两件完全不同的事

实际使用建议:

  • SSH key:几乎所有开发者都必须配置
  • GPG key:只有在“需要提交可信度或签名”的情况下才配置

二、一张表看懂 SSH key 与 GPG key

维度SSH keyGPG key
解决的问题你是谁?你有没有权限?这次提交是不是你本人写的?
用在 Git 的位置clone / pull / pushcommit / tag 签名
是否参与网络连接✅ 是(建立 SSH 连接)❌ 否(只对数据进行签名)
没有它会怎样无法拉取或推送代码能用 Git,但提交不“可信”
GitLab/GitHub 必需性✅ 是❌ 否
常见错误提示Permission denied (publickey)gpg failed to sign the data
是否能互相替代❌ 完全不能❌ 完全不能

三、用一句人话理解区别

SSH key = 门禁卡

  • 作用:验证你能不能进入 Git 仓库

  • 特点

    • 没有它就无法 clone / pull / push
    • 连接层的身份认证
  • 类比:就像公司大楼的门禁卡,你没卡就进不去办公楼


GPG key = 亲笔签名 / 公章

  • 作用:验证提交内容是否真的来自你本人

  • 特点

    • 提交可以照样被 Git 接收,但不显示“Verified”标志
    • 内容层的真实性校验
  • 类比:就像在文件上签名或盖章,别人可以确认是你签的,而不是别人伪造


四、为什么它们看起来有重叠?

很多新手误解在于:

  • 两者都叫key
  • 都跟Git有关

但核心区别在于信任对象不同

  • SSH key→ 服务器信任你
  • GPG key→ 其他开发者信任你的提交内容

信任的方向不同,所以功能完全不重叠。


五、到底需不需要两个都配置?

大部分开发者情况

情况建议配置
公司 GitLab / GitHub✅ SSH key
私有项目 / 日常开发SSH key 即可
开源项目 / 安全要求高SSH + GPG
需要显示提交 Verified必须 GPG

总结:

  • 90% 开发者只需 SSH key
  • GPG key 是可选增强安全措施

遇到实际问题的判断

如果你在执行git pushgit pull时遇到:

Permission denied (publickey)

说明:

  • 缺 SSH key 或配置不对
  • GPG key 对这个问题完全没帮助

正确组合应为:

SSH key → 用来 clone / pull / push GPG key → 用来 sign commit(可选)

六、SSH key 与 GPG key 的使用流程

SSH key 流程

  1. 生成 SSH key(ssh-keygen
  2. 将公钥添加到 Git 服务器(GitHub/GitLab)
  3. 使用 SSH 协议 clone / push / pull
  4. SSH 自动完成身份验证

GPG key 流程

  1. 生成 GPG key(gpg --full-generate-key

  2. 将公钥上传到 Git 服务器

  3. 配置 Git 使用该 GPG key 签名提交:

    gitconfig --global user.signingkey<GPG_KEY_ID>gitcommit -S -m"Your commit message"
  4. 其他人拉取代码时可验证签名真实性


七、总结一句话

SSH key 解决“我能不能访问仓库”
GPG key 解决“这次提交是不是我本人写的”

换句话说:

  • SSH key = 门禁卡
  • GPG key = 亲笔签名 / 公章

理解了这一点,再也不会混淆,也能根据自己的需求灵活配置。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:59:13

设计模式篇2——观察者模式:以直播间送礼系统举例

在软件开发中&#xff0c;我们经常遇到这样的场景&#xff1a;一个动作发生后&#xff0c;需要同时触发一系列后续操作。如果你把这些操作全部写死在一个方法里&#xff0c;代码就会变成一团乱麻&#xff08;所谓的“面条代码”&#xff09;&#xff0c;牵一发而动全身。今天&a…

作者头像 李华
网站建设 2026/3/24 17:20:50

iOS应用上架全面指南:审核流程与要求解析

随着移动互联网的快速发展&#xff0c;iOS平台已成为应用程序分发的重要渠道之一。对于开发者来说&#xff0c;了解iOS上架要求是非常必要的&#xff0c;这有助于确保应用程序顺利通过审核并上架。本文将对iOS上架要求进行详细介绍&#xff0c;帮助开发者更好地了解和遵循相关规…

作者头像 李华
网站建设 2026/4/18 16:17:04

震惊!腾讯企业邮箱在梅州竟有这样的服务商内幕!

深度解析&#xff1a;腾讯企业邮箱在梅州的技术服务商——广东企拓网络科技有限公司的技术突破与实战验证 一、痛点深度剖析&#xff1a;企业邮箱的"最后一公里"困境 在数字化转型浪潮中&#xff0c;企业邮箱作为核心通信工具&#xff0c;却常面临三大技术困境&…

作者头像 李华
网站建设 2026/4/17 22:19:09

阿里双11高并发系统架构设计核心技术全解

据有关数据表明&#xff0c;现在基本工作年限超过5年的Java开发岗以及各大厂招聘岗位&#xff0c;对于高并发这块内容是必定会考察的。这也就意味着&#xff0c;你想要在今年这个大环境下&#xff0c;找到一份薪水高且发展前景好的岗位&#xff0c;不关基础知识还要有良好的编码…

作者头像 李华
网站建设 2026/4/18 5:18:34

1688实时获取商品详情数据-示例

1688作为中国领先的B2B电子商务平台&#xff0c;提供了丰富的API接口&#xff0c;其中商品详情API接口尤为重要。通过该接口&#xff0c;开发者可以获取商品的详细信息&#xff0c;包括标题、价格、规格参数、图片等&#xff0c;为数据分析、库存管理、价格比较等业务场景提供数…

作者头像 李华
网站建设 2026/4/18 7:32:03

疆鸿智能MODBUS TCP转PROFIBUS:网关智构精密组装新脉络

疆鸿智能MODBUS TCP转PROFIBUS&#xff1a;网关智构精密组装新脉络在工业自动化系统的演进中&#xff0c;数据流的无缝贯通是实现智能制造升级的关键。其中&#xff0c;工业通信网关扮演着不可或缺的“协议翻译官”与“数据调度者”角色。本次电子元件精密组装流水线升级项目&a…

作者头像 李华