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(本来就不用密码)
相关推荐
qq_3494479511 小时前
Linux系统,安装git,从使用git下载仓库(GitHub, Gitee, GitLab 等),并且使用ssh密钥,可以直接执行git pull
linux·git·ssh
小小龙学IT12 小时前
Boost.Beast 深度实战:基于 Asio 的开源 C++ HTTP/WebSocket 协议库
c++·websocket·http
ryan_99615 小时前
MCP Transport 完整指南:stdio 与 Streamable HTTP 到底怎样传消息
网络·网络协议·http
凯尔萨厮19 小时前
Git(学习笔记)
笔记·git·学习
一技安身1 天前
【Git】零基础入门实战教程(Windows 完整版,适配竞赛仓库)
windows·git
teak_on_my_way1 天前
外网通过 Nginx 访问 Doris Stream Load:一次 HTTP 307 疑难排查与完整代理方案
运维·数据库·nginx·http
艺术留白1 天前
MokaTest使用篇-HTTP接口
网络·网络协议·http
bbq粉刷匠1 天前
HTTP 深度解析
网络·网络协议·http
LXY_BUAA1 天前
Git_在飞牛中部署 GitLab_20260817
git·gitlab
阳墨余1 天前
Git 同时管理 Gitee 和 GitHub 的 SSH 配置实战
git·gitee·github