这三者都是用于替代传统账号密码的身份验证方式,具有更高的安全性和便利性,但它们的用途和适用场景完全不同:
- SSH公钥:日常开发的主力,实现本地代码操作免密认证
- 私人令牌:自动化与API调用的利器,替代密码的专用凭证
- GPG公钥:代码提交的"防伪印章",确保提交记录的真实性
1. SSH公钥 - 日常开发的主力
1.1 什么是SSH公钥?
SSH公钥采用非对称加密技术,分为两部分:
- 私钥:安全保存在本地电脑,绝对不能泄露
- 公钥:需要添加到Gitee/GitHub等代码托管平台
工作原理是平台通过公钥向本地私钥发起身份验证挑战,整个过程私钥永不离开本地电脑,安全性极高。
1.2 核心用途
✅ 日常代码操作 :git clone、git pull、git push等操作免输密码
✅ 开发者标配 :99%的开发者在本地开发时首选的认证方式
✅ 全程加密:所有通信都经过加密,安全性强
1.3 配置步骤
Step 1: 生成密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"
Step 2: 复制公钥内容
# 查看公钥内容
cat ~/.ssh/id_ed25519.pub
Step 3: 添加到平台
- 登录Gitee/GitHub
- 进入"设置" → "SSH公钥"
- 粘贴公钥内容并保存
Step 4: 使用SSH地址
# 使用SSH地址克隆仓库
git clone git@gitee.com:username/repository.git
2. 私人令牌 (Personal Access Token)
2.1 什么是私人令牌?
私人令牌(PAT)是一串由平台生成的、用于替代账号密码的专用字符串。它可以设置不同的权限范围和有效期,是现代开发中更安全的认证方式。
2.2 核心用途
✅ HTTPS协议免密 :在使用https://地址时作为密码使用
✅ 自动化调用 :CI/CD流水线、自动化部署脚本的标准凭证
✅ API访问:第三方工具和应用调用平台API的认证方式
2.3 安全优势
🔒 权限精细化 :可以单独设置读写权限
📅 有效期控制 :可设置过期时间,降低泄露风险
🚫 随时吊销 :发现泄露可立即手动吊销
🛡️ 风险隔离:一个令牌泄露不影响其他令牌和主账号
2.4 配置与使用
Step 1: 生成令牌
- 进入平台"设置" → "私人令牌"
- 点击生成新令牌
- 勾选所需权限(如
repo权限)
Step 2: 立即保存
- 令牌生成后仅显示一次,必须立即复制保存
- 关闭页面后无法再次查看
Step 3: 使用场景
# HTTPS克隆时使用
git clone https://gitee.com/username/repository.git
# 输入用户名后,密码栏输入令牌
3. GPG公钥 - 代码提交的"防伪印章"
3.1 什么是GPG公钥?
GPG公钥用于给Git提交记录进行数字签名,确保每次代码提交的真实性和完整性,防止他人冒充或篡改代码。
3.2 核心用途
✅ 验证提交者身份 :证明提交确实由本人完成
✅ 确保代码完整性 :防止代码在传输过程中被篡改
✅ 提升项目可信度:开源项目和企业团队的合规审计需求
3.3 配置步骤
Step 1: 安装GPG工具
# Ubuntu/Debian
sudo apt-get install gnupg
# macOS
brew install gnupg
Step 2: 生成GPG密钥
gpg --full-generate-key
Step 3: 导出公钥
# 列出密钥
gpg --list-secret-keys --keyid-format LONG
# 导出公钥
gpg --armor --export YOUR_KEY_ID
Step 4: 添加到平台
- 复制导出的公钥内容
- 添加到Gitee/GitHub的"GPG Keys"设置中
Step 5: 配置Git签名
git config --global user.signingkey YOUR_KEY_ID
git config --global commit.gpgsign true
三者快速对比表
| 凭证类型 | 主要用途 | 适用场景 | 推荐人群 |
|---|---|---|---|
| SSH公钥 | 本地代码操作认证 | 日常开发、代码拉取推送 | 所有开发者 |
| 私人令牌 | 密码替代品 | HTTPS操作、自动化脚本、API调用 | 自动化运维 |
| GPG公钥 | 提交记录签名 | 身份核验、合规审计 | 开源维护者 |
新手最佳实践指南
第一步:优先配置SSH公钥
这是日常开发的基础配置,一次设置终身受益:
- 生成SSH密钥对
- 添加公钥到平台
- 使用SSH地址克隆仓库
第二步:按需使用私人令牌
当需要以下操作时再生成令牌:
- 使用HTTPS协议克隆仓库
- 配置CI/CD流水线
- 第三方工具集成
- 自动化脚本部署
重要提示:为不同用途创建不同权限的令牌,并及时回收不再使用的令牌。
第三步:进阶配置GPG签名
对于个人项目或学习用途,GPG签名不是必需的。当参与以下项目时再考虑配置:
- 大型开源项目
- 企业级代码库
- 有严格审计要求的项目
总结
掌握这三大安全凭证的使用是现代软件开发者的必备技能:
- SSH公钥是日常开发的基石,实现安全便捷的代码操作
- 私人令牌是自动化时代的标准,替代传统密码的专用凭证
- GPG公钥是代码可信度的保障,确保提交记录的真实性和完整性
通过合理配置和使用这些安全凭证,您不仅能提升开发效率,更能显著增强代码仓库的安全性。记住:安全不是一蹴而就的,而是通过正确的工具和习惯逐步建立起来的。
本文档旨在帮助开发者理解Git安全凭证的核心概念和使用方法,建议结合实际开发需求选择合适的认证方式。