抓包分析ssh远程主机为何变慢了?

news2025/1/12 1:06:30

文章目录

    • 背景
    • SSH协议握手过程
    • ssh 抓包MAC层包传输
    • tcp握手抓包解释
      • 三次握手的第一个报文- SYN包
      • 第一个报文对应的抓包详情
      • 三次握手的第二个报文- SYN+ACK包
      • 第二个报文对应的抓包详情
      • 三次握手的第三个报文- ACK包
      • 第三个报文对应的抓包详情
    • ssh版本协议交换
    • 密钥协商key阶段
      • Key Exchange Init发送的请求包数据分析
    • 看懂wireshark抓包数据的前置知识
      • tcp的格式
    • 参考

背景

在使用spug自动化部署程序的时候,会使用ssh协议远程执行脚本,但是ssh那一步会耗时比较旧,网上的解决方案五花八门. 问题可能可以解决,但是背后原理并不清楚,借此机会抓包将此问题彻底消化.

SSH协议握手过程

在这里插入图片描述

ssh 抓包MAC层包传输

在这里插入图片描述

序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。

确认应答号:指下一次「期望」收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。用来解决丢包的问题。

控制位:

ACK:该位为 1 时,「确认应答」的字段变为有效,TCP 规定除了最初建立连接时的 SYN 包之外该位必须设置为 1 。
RST:该位为 1 时,表示 TCP 连接中出现异常必须强制断开连接。
SYN:该位为 1 时,表示希望建立连接,并在其「序列号」的字段进行序列号初始值的设定。
FIN:该位为 1 时,表示今后不会再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换 FIN 位为 1 的 TCP 段。

tcp握手抓包解释

在这里插入图片描述

No描述SeqWinACK解释
214第一次握手014600\seq = 0表示客户端当前的TCP包序列号
215第二次握手0144801seq = 0,表示服务器端当前的TCP包序列号ack = 1(客户端seq + 1),表示对客户端第 seq = 0 的TCP包进行应答
216第三次握手1147201seq = 1,表示客户端当前的TCP包序列号ack = 1(服务器seq + 1),表示对服务器端第 seq = 0 的TCP包进行应答

三次握手的第一个报文- SYN包

在这里插入图片描述

第一个报文对应的抓包详情

在这里插入图片描述

三次握手的第二个报文- SYN+ACK包

在这里插入图片描述

第二个报文对应的抓包详情

在这里插入图片描述

三次握手的第三个报文- ACK包

在这里插入图片描述

第三个报文对应的抓包详情

在这里插入图片描述

ssh版本协议交换

在这里插入图片描述

No描述解释
217server端协议版本协商服务器将自己的SSH协议版本发送到客户端,格式为:SSH-protoversion(版本号)-softwareversion(自定义) SP(空格一个,可选) comments(注释,可选) CR(回车) LF(换行)
219client协议版本协商客户端将自己的SSH协议版本发送到服务器,格式为:SSH-protoversion(版本号)-softwareversion(自定义) SP(空格一个,可选) comments(注释,可选) CR(回车符) LF(换行符)

密钥协商key阶段

221-228是SSH版本协议交换过程。
在这里插入图片描述
密钥协商过程从客户端和服务器相互发出Key Exchange Init请求开始,主要是告诉对方自己支持的相关加密算法列表、MAC算法列表等。
在这里插入图片描述

最后协商成功之后,将会生成一个对称加密会话密钥key以及一个会话ID,在这里要特别强调,这个是对称加密密钥key,不要和公钥相混淆了,公钥和密钥在上面开头已经着重强调两者的区别了,公钥是给客户端去验证服务器用的。
在这一步中,公钥会从服务器传送到客户端:
在这里插入图片描述

而会话密钥是通过D-H算法计算出来的,不会在网络上传输,其破解的难度取决于离散对数的破解难度,一般不会被破解的,有兴趣的可以自行了解该算法原理。

Key Exchange Init发送的请求包数据分析

在这里插入图片描述

No描述解释
1kex_algorithms密钥交换算法,里边即包含我们使用的D-H算法,用于生成会话密钥
2server_host_key_algorithms服务器主机密钥算法,可以采用 ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,有公钥和私钥的说法,公钥即我们上面讲到的pub key,对于公钥私钥的概念,可以参见understanding public key private key concepts
3encryption_algorithms_client_to_server对称加密算法,常用的有aes128-cbc,3des-cbc

服务器首次ssh的指纹信息就是ecdsa-sha2-nistp256算法生成的.

看懂wireshark抓包数据的前置知识

tcp的格式

在这里插入图片描述

参考

【1】 参考此文章
【2】 小林codding

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序员的工资这么高,为什么还会有人离职?

出了社会以后才发现,班级里天天打鸡血的、最奋斗的、同时也最焦虑的,不是成绩最好的,也不是成绩最差的,而是那帮处于中间的人。 他们不像那些成绩最差的,或是天天摆烂,或是靠高情商混得风生水起&#xff1b…

Pytest----pluggy源码解读基础准备

【原文链接】Pytest----pluggy源码解读基础准备 解读pluggy源码,直接使用pytest环境中安装的pluggy即可,比如这里安装的pluggy版本是1.0.0,为了更好的理解源码,这里首先使用如下应用代码作为应用实例,从如下代码中可以…

低代码助力生产管理:离散型制造业MES系统

制造业作为我国国民经济的支柱产业,在我国经济增长中占有主导作用。而制造业对经济增长的贡献很大一部分来自于以离散制造业为代表的机械装备制造、汽车零部件制造等。因此,离散制造业的发展对我国经济增长具有举足轻重的作用。 离散型制造业的特点&…

中创股份在科创板提交上会稿:计划募资6亿元,景新海为董事长

12月8日,山东中创软件商用中间件股份有限公司(下称“中创股份”)在上海证券交易所科创板提交招股书(上会稿)。相较于此前招股书,中创股份补充了截至2022年9月30日的财务数据等信息。 据贝多财经了解&#x…

记一次 Eclipse 打包的辛酸历程

文章目录1:背景2 maven 工程3 普通工程3.1 打可执行的 jar3.2 打普通 jar4: 运行 jar 包1:背景 偶然的境况下,被迫使用了 Eclipse 进行代码。遇到的代码也有点奇怪,main 方法启动 java 工程,里面封装 Tomc…

音频声音信号

音频信号是模拟信号,我们需要将其保存为数字信号,才能对语音进行算法操作,WAV是Microsoft开发的一种声音文件格式,通常被用来保存未压缩的声音数据。 通道数:同时有个几个设备在进行音频的采样;采样频率&a…

Django连接MySQL与正反向迁移命令

目录 连接MySQL 方法一:pymysql连接 方法二:mysqlclient 迁移命令 连接MySQL 方法一:pymysql连接 第一步:修改settings.py配置文件中的DATABASES: DATABASES {default: {ENGINE: django.db.backends.mysql,HOS…

【车载开发系列】UDS诊断---动态定义DID($0x2C)

【车载开发系列】UDS诊断—动态定义DID($0x2C) UDS诊断---动态定义DID($0x2C)【车载开发系列】UDS诊断---动态定义DID($0x2C)一.概念定义1)DID定义方式2)DID失效条件二.应用场景三.报…

【Python游戏】今天小编用Python实现了一个植物大战僵尸小游戏 | 附源码

前言 halo,包子们下午好 今天给打击整一个植物大战僵尸 无广告版本 哈哈 说实话,现在的小游戏很多都是有广告,多少有点难受 今天给大家直接安排 相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 源码点…

java基于Springboot的社区维修平台-计算机毕业设计

项目介绍 系统管理也都将通过计算机进行整体智能化操作,对于社区维修平台所牵扯的管理及数据保存都是非常多的,例如住户管理、社区公告管理、维修工管理、维修订单管理、接单信息管理、订单信息管理、在线沟通管理、举报信息管理、留言板管理、系统管理…

4G远程智能巡检摄像机功耗测试对比

对于一款输电线路监控设备,由于装在铁塔上面,对于功耗,电网上面的应用,尤为重要,如何得做到低功耗,一直大家研究的地方,解决了功耗,基本产品成功了一半,而合方圆在电网行…

对称加密算法(一)(替换算法,Caesar, Playfair, Hill Cipher,Polyalphabetic Cipher)

文章目录Symmetric Cipher ModelSubstitution TechniquesCaesar CipherMonoalphabetic CiphersPlayfair CipherHill CipherPolyalphabetic CipherVigenere CipherVernam CipherOne-Time PadReferences对称加密,也被称为传统加密、单钥加密或私钥加密,是 …

Flink系列-1、流式计算简介

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 大数据系列文章目录 官方网址:https://flink.apache.org/ 学习资料:https://flink-learning.org.cn/ 目录数据的时效性…

【pytorch】使用pytorch自己实现LayerNorm

pytorch中使用LayerNorm的两种方式,一个是nn.LayerNorm,另外一个是nn.functional.layer_norm 1. 计算方式 根据官方网站上的介绍,LayerNorm计算公式如下。 公式其实也同BatchNorm,只是计算的维度不同。 下面通过实例来走一遍公式 假设有如下的数据 …

JQuery 高级

目录 1. 动画 1. 三种方式显示和隐藏元素 1. 默认显示和隐藏方式 2. 滑动显示和隐藏方式 2. 遍历 1. js的遍历方式 2. jq的遍历方式 5. 插件:增强JQuery的功能 1 . 实现方式: 1. $.fn.extend(object) * 增强通过Jquery获取的对象的…

java计算机毕业设计ssm学生宿舍管理系统efyug(附源码、数据库)

java计算机毕业设计ssm学生宿舍管理系统efyug(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

取余,模运算,余数的正负问题,1497. 检查数组对是否可以被 k 整除

首先,我们来看数学中对余数的定义 0到除数之间的整数,所以当除数是负数的时候,余数也是负数。 举个例子: 接下来,我们看计算机中余数是怎么求的??? 所有的语言和计算器都遵循了让商…

防火墙豁免实验

♥️作者:小刘在C站 ♥️每天分享云计算网络运维课堂笔记,疫情之下,你我素未谋面,但你一定要平平安安,一 起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放,愿…

单商户商城系统功能拆解44—应用中心—小程序直播

单商户商城系统,也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法,例如拼团,秒杀,砍价,包邮…

shell 基本语法第四讲之(find(文件查找)、xargs(字符串拼凑)、sed(处理文本)、awk(文本处理)、crontab(系统定时器))

20、find(文件查找) 格式 find pathname -options [-print -exec -ok …] 命令说明举例-name按照文件名查找文件。find . -name “1.txt”-perm按照文件权限来查找文件。find . -perm 660-user按照文件属主来查找文件。-group按照文件所属的组来查找文件。-mtime -n n按照文件…