Git -远程仓库使用HTTPS和SSH区别、git代理

目录

SSH与HTTPS对比

特性 SSH HTTPS
协议类型 加密的网络协议 加密的HTTP协议
端口 22 443
认证方式 密钥对(公钥/私钥) 用户名+密码/令牌
URL格式 git@host:user/repo.git https://host/user/repo.git
首次配置 比较复杂(需生成配置密钥) 简单(直接输入密码)
速度 较慢
安全性 高(使用令牌时)
便捷性 配置一次,永久使用 需要频繁输入凭证
公司网络 可能被防火墙阻挡(端口22) 通常可以访问(端口443)

平台支持情况:

平台 SSH 支持 HTTPS 支持 备注
Gitee ✅ 优秀 ✅ 优秀 都推荐使用
GitHub ✅ 优秀 ✅ 优秀 2021年后推荐令牌代替密码
GitLab ✅ 优秀 ✅ 优秀 企业版可能有特殊配置
自建 Git ✅ 需要配置 ✅ 通常支持 取决于服务器配置

SSH中的账户公钥和仓库公钥对比

特性 账户公钥 仓库公钥(部署公钥)
绑定对象 个人账户 单个仓库
作用范围 整个账户所有仓库 单个特定仓库
权限 读写权限(可 push/pull) 只读权限(只能 pull)
使用场景 个人开发、日常使用 服务器部署、CI/CD、自动化部署
安全性 高(绑定个人账户,个人级别) 较高(仅限单个仓库,仓库级别)
管理位置 账户设置→SSH公钥 仓库设置→部署公钥

账户公钥权限矩阵:

操作 自己的公开仓库 自己的私有仓库 别人的公开仓库 别人的私有仓库
Clone
Pull(推送)
Push(拉取) ⚠️(需权限)
Fork

仓库公钥权限矩阵:

操作 绑定的仓库(只读模式) 绑定的仓库(读写模式)
Clone
Pull
Push
其他操作

黄金法则:

  • 个人开发 → 账户公钥(方便管理)
  • 服务器/自动化 → 仓库公钥(安全隔离)
  • 权限最小化 → 只给必要的权限
  • 密钥分离 → 不同用途使用不同密钥
  • 仓库公钥是给机器用的,账户公钥是给人用的。

SSH中的私钥和公钥对比

特性 私钥(id_rsa/id_ed25519) 公钥(id_rsa.pub/id_ed25519.pub)
保密性 🔒绝对保密,永不外传 📢可以公开
存储位置 本地计算机(仅自己) 远程服务器(Gitee/GitHub等)
文件扩展名 无扩展名 .pub
权限设置 600 (rw-------) 644 (rw-r--r--)
生成顺序 先生成私钥,再导出公钥 从私钥派生生成
丢失后果 灾难性,需重新生成 无影响,可从私钥重新生成
使用场景 身份验证、解密、签名 验证、加密、验签
  • 每次 SSH 连接都会自动使用对应的私钥进行验证
  • 一台电脑可以有多对密钥,通过配置文件管理

git代理

查看代理

git 复制代码
// 查看全局代理
git config --global --get http.proxy  # 应该没有输出
git config --global --get https.proxy # 应该没有输出
// 查看局部代理
git config --local --get http.proxy  # 应该没有输出
git config --local --get https.proxy # 应该没有输出

添加代理

git 复制代码
// 全局代理,影响全部git仓库
git config --global http.proxy socks5://127.0.0.1:端口号
git config --global https.proxy socks5://127.0.0.1:端口号
// 局部代理,只影响当前git仓库
git config --local http.proxy socks5://127.0.0.1:端口号
git config --local https.proxy socks5://127.0.0.1:端口号

​​​​​​

删除代理

git 复制代码
# 删除 HTTP 代理配置
git config --global --unset http.proxy

# 删除 HTTPS 代理配置
git config --global --unset https.proxy

# 验证是否删除成功
git config --global --get http.proxy  # 应该没有输出
git config --global --get https.proxy # 应该没有输出
相关推荐
Tatalaluola2 小时前
Github配置SSH key
ssh
_OP_CHEN3 小时前
【Git原理与使用】(四)Git 远程操作与标签管理全解析:从分布式协作到版本标记最全攻略
linux·运维·分布式·git·git远程仓库·企业级组件·git标签管理
艾莉丝努力练剑3 小时前
【Linux基础开发工具 (七)】Git 版本管理全流程与 GDB / CGDB 调试技巧
大数据·linux·运维·服务器·git·安全·elasticsearch
weixin_307779133 小时前
Jenkins SSH Build Agents 插件详解:远程构建的利器
运维·开发语言·架构·ssh·jenkins
驾驭人生4 小时前
SSH 服务部署 + Docker(指定版本)完整安装 的一体化操作流程
运维·docker·ssh
2501_916007475 小时前
HTTPS工作原理与重要性:全面安全指南
网络协议·安全·ios·小程序·https·uni-app·iphone
aoxiang_ywj15 小时前
tig 的untracked changes和unstaged changes含义?
git
gxh199218 小时前
4步将HTTP请求升级为HTTPS
运维·服务器·网络协议·http·https
feng_blog668819 小时前
cursor通过ssh连接远程服务器
运维·服务器·ssh