git中http与ssh连接

2026.7.28 星期二

简单说:SSH 和 HTTP 是 Git 连接远程仓库(比如 GitHub/Gitee/GitLab)的两种「通信方式」 ,作用都是让你本地电脑和远程服务器传输代码,只是验证身份、使用方式不一样。、

  • HTTPS不用配置,直接用账号密码 / 令牌登录,每次都要验证

  • SSH配一次密钥,永久免密,更安全、更方便

维度 HTTP/HTTPS SSH
端口 443 (HTTPS) / 80 (HTTP) 22
认证方式 用户名+密码 或 Token 密钥对(公钥+私钥)
URL 格式 https://github.com/user/repo.git git@github.com:user/repo.git
默认加密 HTTPS 是,HTTP 否 是(端到端加密)
配置难度 简单 较复杂

一.HTTP连接

全称:Hyper Text Transfer Protocol Secure(安全超文本传输协议)

原理:用账号密码/令牌验证身份,每次操作都需要登录。

使用流程

1.直接复制仓库地址

2.每次 git push 时,会弹出输入用户名 + 密码 / 令牌

优点:不用配置任何东西,开箱即用;任何电脑都能直接用

缺点:频繁输密码,很麻烦;在主流平台(GitHub/Gitee)不支持纯密码,必须用令牌,更繁琐

HTTPS配置

bash 复制代码
# 克隆仓库
git clone https://github.com/用户名/仓库名.git

# 首次推送时会要求输入用户名和 Token
# 用户名:你的 GitHub 用户名
# 密码:Personal Access Token(在 GitHub Settings → Developer settings 生成)

# 缓存凭证(避免每次输入)
git config --global credential.helper cache      # 临时缓存
git config --global credential.helper store     # 永久存储(不够安全)

二.SSH连接

全称:Secure Shell(安全外壳协议)

原理:用密钥对(公钥 + 私钥)验证身份,不用输密码。

使用流程:

1.本地生成一对密钥(私钥放自己电脑,公钥粘贴到远程仓库)

2.配置好后,以后克隆、拉取、推送代码全程不用输密码

优点:✅ 免密,超级方便✅ 安全,不会泄露密码✅ 速度快,稳定

缺点:❌ 第一次需要配置密钥(新手稍微麻烦一点)

SSH配置

bash 复制代码
# 1. 生成密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"

# 2. 启动 SSH Agent 并添加私钥
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

# 3. 复制公钥
cat ~/.ssh/id_ed25519.pub
# 将输出的内容粘贴到 GitHub → Settings → SSH and GPG keys

# 4. 测试连接
ssh -T git@github.com

# 5. 使用 SSH 地址克隆
git clone git@github.com:用户名/仓库名.git

区别对比

特性 HTTPS SSH
🔒 安全性 依赖 TLS + Token 密钥对认证,私钥不出本地
⚡ 速度(首次) 较慢(握手+认证) 较慢(密钥交换)
⚡ 速度(后续) 凭证缓存后较快 更快(无额外认证步骤)
🔧 配置难度 ⭐ 简单 ⭐⭐⭐ 需要理解密钥概念
🌐 网络兼容 几乎任何网络都通 ❌ 很多企业防火墙封 22 端口
👥 多账户管理 切换麻烦 通过 ~/.ssh/config 轻松管理
🔄 代理支持 自动走系统代理 需手动配置 ProxyCommand
📱 临时使用 ✅ 方便,不用配置 ❌ 必须先配密钥
🔑 凭证管理 系统凭据管理器 SSH Agent
🚫 GitHub 旧密码 ❌ 2021 已废弃 N/A(本来就不用密码)
相关推荐
@Demi2 小时前
前端开发 Git 分支与 Tag 管理规范
大数据·git·elasticsearch
Full Stack Developme2 小时前
Tomcat 如何处理HTTP请求
java·http·tomcat
味悲3 小时前
Apache HTTP 服务器配置
服务器·http·apache
炸膛坦客17 小时前
Git 和 GitHub:(七)将本地新建仓库与 GitHub 远程仓库关联起来(SSH)
git·ssh·github
炸膛坦客1 天前
Git 和 GitHub:(六)在本地新建仓库并进行一次提交
git·github
q567315231 天前
Scrapy 框架集成稳定 HTTP 代理:中间件配置与断线重试实战
爬虫·网络协议·scrapy·http·中间件·http代理
完美火龙篇 四月的友1 天前
SpringBoot 即时聊天 IM 完整实现(HTTP会话管理 \+ WebSocket实时推送 \+ 离线消息)
spring boot·websocket·http
9527出列1 天前
一次 HttpClient 连接池泄漏的完整排查与修复
http
星马梦缘1 天前
如何内网穿透用手机远控电脑?
http·电脑·内网穿透·远程控制