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 # 应该没有输出
相关推荐
oMcLin14 分钟前
Ubuntu 22.04 系统通过 SSH 远程登录失败:如何解决 SSH 配置文件错误导致的登录问题
数据库·ubuntu·ssh
工具罗某人2 小时前
docker快速部署启动gitlab
git·docker·云原生·eureka
人工智能训练9 小时前
OpenEnler等Linux系统中安装git工具的方法
linux·运维·服务器·git·vscode·python·ubuntu
dblens 数据库管理和开发工具13 小时前
Git 指令大全(全干货版)
运维·git·ubuntu
张二娃同学15 小时前
深度学习入门篇——Github的使用和项目的导入
人工智能·git·深度学习·开源·github
SadSunset16 小时前
Git分支
git
蒜丶18 小时前
openEuler 22.03 修改 ssh 22 端口
运维·ssh
Lewin.Lin18 小时前
git安装与gitee教程
git·gitee
C_心欲无痕20 小时前
git - 版本回退的两种方式
git
QQ_43766431421 小时前
阿里云简单配置gdb+git
git·阿里云