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 # 应该没有输出
相关推荐
凯酱5 小时前
git 拉取指定分支
git
2501_915909065 小时前
苹果iOS应用上架详细流程与注意事项解析
android·ios·小程序·https·uni-app·iphone·webview
Easonmax6 小时前
【鸿蒙pc命令行适配】tig(git命令行可视化)工具移植实战:解决ncurses库依赖、terminfo终端适配与环境配置全流程
git·华为·harmonyos
菜鸟厚非7 小时前
如何在 Nginx 中配置 HTTPS - Linux
linux·nginx·https
petunsecn8 小时前
多 GitHub 账号与多平台 Git 使用(附加场景:就想用指定账号clone)
git·github
QQ__17646198248 小时前
SSH远程通过Vscode运行Jupyter无法使用CUDA
vscode·jupyter·ssh
yuanmenghao8 小时前
Git submodule 与 git-repo(Google 的 repo 工具) 在多仓库管理上的差异
git
木易双人青8 小时前
git常用命令
git
forestsea9 小时前
GitHub HTTPS 提交代码与个人访问令牌配置指南
网络协议·https·github
热忱11289 小时前
Git 全套常用命令手册(含日常开发示例)
大数据·git·elasticsearch·搜索引擎