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(本来就不用密码)
相关推荐
右耳朵猫AI3 小时前
Go周刊2026W36 | Go 1.27.1 发布、TinyGo 0.42、HTTP/2 原生迁入 net/http、quic-go 0.62
redis·http·golang
麻辣布丁6 小时前
Git冲突原因与解决方法全解
大数据·git·elasticsearch
风景的人生9 小时前
Linux虚拟机网络故障排查与解决方案
运维·网络·ssh
一支黑色の铅笔10 小时前
VSCode 克隆Git项目
ide·git·vscode
承渊政道11 小时前
星空组网真实体验:Mac远程访问Ubuntu,SSH与HTTP全流程验证
ubuntu·http·macos·ssh·服务器管理·星空组网
拽着尾巴的鱼儿12 小时前
Idea:Cannot Run Git 无法运行git
java·git·intellij-idea
码农阿豪13 小时前
不装 SSH 客户端也能连服务器:用 WebSSH 把终端搬进浏览器
运维·服务器·ssh
y小川16 小时前
【git】移除远端已删除的git分支
git
OsDepK1 天前
项目快速Git至仓库(完整版)
大数据·git·elasticsearch·搜索引擎
妙码生花1 天前
使用git更新ai-go-admin框架
前端·人工智能·git·golang·typescript·php