OpenSSH协议(密钥和私钥)

Git里连接远程仓库(比如GitHub)的SSH和HTTPS两种方式,核心区别在“认证方式”和“使用体验”,看这张对比表更清楚:

维度 SSH方式 (Use bundled OpenSSH) HTTPS方式(Use external OpenSSH)
认证方式 用「SSH密钥对」(本地生成密钥,把公钥传到GitHub) 每次操作输入「GitHub账号密码」或「令牌(Token)」
首次配置 略复杂(需要生成/上传密钥) 简单(直接输入账号密码/令牌)
后续使用 配置好后不用重复输入密码,一劳永逸 每次操作可能需要重复验证(或配置凭证缓存)
安全性 密钥存在本地,更安全(无密码泄露风险) 需妥善保管密码/令牌,有泄露风险
适用场景 长期频繁操作仓库(比如开发者日常开发) 临时/偶尔操作仓库(比如快速拉取代码)
工具 OpenSSH powrshell/cmd/xshell

简单说:长期用选SSH(一次配置终身省心),临时用选HTTPS(上手快)

我把「公钥/私钥」和「本地SSH(Git自带)/外部SSH」的区别分两个表格整理,更清晰:

表格1:公钥 vs 私钥(SSH密钥对的两个部分)

维度 公钥 私钥
存储位置 上传到远程仓库(如GitHub的账号设置里) 仅保存在自己的电脑本地
作用 远程仓库用它加密数据,只有对应的私钥能解密 本地用它解密远程仓库的加密数据,证明“你是你”
可见性 可以公开分享(泄露了也不影响安全) 绝对不能泄露(泄露会导致仓库被他人非法访问)
生成方式 和私钥是成对生成的(生成私钥时自动生成公钥) 通过ssh-keygen命令生成(Git自带/外部SSH都能用这个命令)

表格2:Git自带SSH(本地SSH) vs 外部SSH

维度 Git自带SSH(bundled OpenSSH) 外部SSH(如单独安装的OpenSSH)
来源 随Git安装包一起自带 单独从OpenSSH官网/系统商店下载安装
密钥存储路径 默认存在C:\用户\你的用户名\.ssh文件夹下 可自定义路径,也可沿用系统默认路径
生成密钥的命令 git bash里的ssh-keygen命令 用外部SSH终端里的ssh-keygen命令
和Git的兼容性 和Git高度适配,无需额外配置 需确保路径被加入系统环境变量,Git才能识别
适用场景 新手/不想额外折腾的用户 有特殊SSH功能需求的进阶用户

简单总结:

  • 公钥+私钥是SSH认证的“钥匙对”,不管用Git自带还是外部SSH,都需要生成这对密钥;
  • Git自带SSH是“省心版”,外部SSH是“自定义版”,但对普通用户来说,用Git自带的SSH完全够用~

技术相关图片 ---

区分一下三个SSH,别混淆,我自己的理解就是他们肯定有点关联,可能是和SSH协议关联,还得看看

对比维度 SSH(协议)
Secure Shell
SSH(Java框架)
Struts + Spring + Hibernate
SSH(小飞机)
SS/SSR 等代理工具的俗称
核心定义 一种安全的网络传输协议,用于加密远程登录、数据传输(如Git/服务器管理) 三个Java开源框架的组合,是早期Java Web开发的经典技术栈 代理工具
所属领域 网络安全/通信协议 Java Web开发/企业级应用开发 代理工具
核心用途 1. 加密远程连接服务器(如Linux服务器登录);
2. Git通过SSH协议连接远程仓库;
3. 安全传输文件(scp/sftp)
1. Struts:处理前端请求、控制层;
2. Spring:核心容器、依赖注入、事务管理;
3. Hibernate:ORM框架,简化数据库操作
代理工具
发明者/起源 1995年由Tatu Ylönen开发,替代不安全的Telnet协议 2000年后逐步形成的Java开发组合(Struts:Apache;Spring:Rod Johnson;Hibernate:Gavin King) 代理工具
使用场景举例 - 用ssh root@服务器IP登录阿里云服务器;
- Git通过SSH协议推送代码到GitHub
- 开发电商网站、企业管理系统;
- 传统Java后端项目快速搭建
(违规场景)访问境外未备案网站、规避网络监管(不合法)
是否开源/标准化 标准化协议(RFC 4250-4256),开源实现(OpenSSH) 三个框架均为开源,有成熟的官方文档和社区 非标准化工具,多为民间修改版,无官方维护
和“密钥/加密”的关系 核心依赖非对称加密(公钥/私钥),是加密通信的核心 无直接加密功能,仅为开发框架,加密需额外实现 基于加密算法(如AES、ChaCha20)实现代理数据传输加密
新手易混淆点 我们之前聊的Git/SSH认证,指的是这个协议 仅Java开发场景会接触,和网络协议无关 纯民间俗称,和真正的SSH协议无技术关联

SSH协议只是其中一个,网络分为五层
互联网中的协议数量没有绝对固定值——因为协议是分层设计(如OSI/RM 7层、TCP/IP 4层),不同层级、不同场景(通信、存储、安全等)都有对应的标准协议,且随着技术发展会持续新增/淘汰。

以下从「分层分类」角度,整理核心常用协议清单(覆盖你之前关注的协议,按TCP/IP分层逻辑归类),帮你建立系统认知:

一、TCP/IP分层核心协议总览(常用协议约50+,以下为关键分类)

分层 核心作用 常用协议清单(含你关注的协议)
应用层 直接面向用户/应用,定义数据用途 1. 通信类:HTTP、HTTPS、SSH、FTP、SFTP、SMTP(邮件发送)、POP3/IMAP(邮件接收)、DNS(域名解析);
2. 数据交互类:REST API(基于HTTP)、WebSocket(实时通信)、MQTT(物联网);
3. 文件传输类:FTPS(FTP加密版)、SCP(SSH文件传输)、TFTP(简单文件传输);
4. 其他:Telnet(明文远程登录,已淘汰)、SNMP(设备管理)、NTP(时间同步)
传输层 保障端到端数据传输可靠性/效率 1. 可靠传输:TCP(你关注的协议,HTTP/HTTPS/SSH/FTP均基于此);
2. 高效传输:UDP(视频通话、直播、DNS查询);
3. 其他:SCTP(融合TCP/UDP优势,用于电信网络)
网络层(网际层) 负责跨网络路由、地址寻址 1. 核心协议:IP(IPv4/IPv6,互联网基础);
2. 辅助协议:ICMP(网络诊断,如ping命令)、ARP(局域网地址解析)、RARP(反向地址解析)、IGMP(组播管理)
数据链路层 负责物理链路数据传输(帧封装) 1. 局域网:Ethernet(以太网协议)、WiFi(802.11系列协议);
2. 广域网:PPP(拨号上网)、HDLC(路由器通信);
3. 其他:VLAN(虚拟局域网)、STP(防环路)
物理层 定义物理设备接口(电信号/硬件) 1. 有线:RJ45(网线接口)、光纤传输协议;
2. 无线:蓝牙(802.15)、NFC、5G/4G(蜂窝网络协议);
3. 其他:RS-232(串口协议)

二、关键补充说明

  1. 协议数量的“无限性”
    • 标准协议:仅IETF(互联网工程任务组)发布的RFC文档中,已标准化的协议就有上千个(大部分用于特定场景,如物联网、工业控制);
    • 自定义协议:企业/开发者可基于底层协议(如TCP/UDP)设计私有协议(如游戏通信协议、工业设备协议),这类协议无统一统计;
  2. 核心协议vs边缘协议
    • 你之前关注的TCP、HTTP、HTTPS、SSH、FTP属于「核心常用协议」(互联网基础);
    • 边缘协议:如用于卫星通信的DVB-S2、工业控制的Modbus、物联网的CoAP等,仅在特定领域使用;
  3. 协议的“替代与演进”
    • 淘汰协议:Telnet(被SSH替代)、HTTP/1.0(被HTTP/1.1/2/3替代)、早期FTP(被SFTP/FTPS替代);
    • 新增协议:HTTP/3(基于UDP,优化传输效率)、QUIC(谷歌推出,用于Chrome浏览器)、IPv6(替代IPv4解决地址枯竭)。

三、新手重点掌握清单(无需记所有协议)

分层 必学协议(工作/学习高频) 核心用途
应用层 HTTP、HTTPS、SSH、FTP、DNS 网页访问、安全通信、远程登录、文件传输、域名解析
传输层 TCP、UDP 可靠传输(文件/网页)、高效传输(视频/直播)
网络层 IP、ICMP 跨网络通信、网络诊断(ping)
数据链路层 Ethernet、WiFi 局域网/无线局域网连接

简单说:协议是“互联网的语言”,不同设备/场景需要不同的“语言”沟通,核心常用协议仅10+个,掌握这些就能应对大部分开发/运维场景。如果需要深入了解某类协议(如物联网协议、安全协议),可以进一步细化。


guess:
猜测,五层tcpip协议,是因为频段的不同,或者是因为磁场的不同,就像符合人体的三脉七轮规律一样,或者类似于七轮变成五行八字,很扯淡,很bullshit,但是有点像,就是频段不同,分阶层,还有磁场不同,就是对应的电磁波频率是不一样的,

五层协议,七层协议:
物理层:硬件设备啊,线,传输二进制数据0101的线, 网线,HDMI线(这个一般情况下笔记本用不到),

数据链路层:

网络层:防火墙
传输层:
应用层:


区分一下OpenSSH客户端和Openssh服务器
技术相关图片

posted on 2026-01-03 22:37  Skeleton_s  阅读(10)  评论(0)    收藏  举报

导航