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 # 应该没有输出
相关推荐
库玛西16 小时前
Linux网络编程:HTTP/HTTPS协议核心技术全解析
linux·运维·服务器·网络·c++·http·https
mooooooooooye19 小时前
SSH 工具越用越乱,Xterminal 先清掉这三类失效连接
运维·ssh·github
轮到我狗叫了21 小时前
git - 版本控制工具 - 对应的常见命令 - 以及无需后续每次手动source conda
git
changxiang1 天前
GIT 备忘
git
可乐鸡翅yeah_1 天前
HTTPS 站点下 M3U8 混合内容问题深度排查,HLS 协议安全策略踩坑实录
数据库·网络协议·https·m3u8·m3u8在线
DogDaoDao1 天前
Windows 开发提效工具全景指南:60+ 工具的工程化分层配置
windows·git·程序员·开发工具·powershell·everything·msys2
梓沂2 天前
SSH 公钥认证配置指南:从生成密钥到配置 SFTP 服务器
ssh
wdfk_prog2 天前
GitHub push 失败:如何扫描并清理 Git 历史中的大文件
git·elasticsearch·github
大明二代2 天前
使用 Traefik、cert-manager 和 DNS-01 为内网 Kubernetes 服务配置 HTTPS
git·kubernetes·flux
小芒果_012 天前
git常用命令速查
大数据·git·elasticsearch