广告
返回顶部
首页 > 资讯 > 服务器 >【计网】SSH协议详解
  • 647
分享到

【计网】SSH协议详解

ssh服务器运维 2023-08-18 13:08:24 647人浏览 独家记忆
摘要

文章目录 1、概念介绍2、功能作用3、服务组成4、框架组成5、工作流程6、认证方式7、常用命令 1、概念介绍 ssh(Secure shell),安全外壳协议,是一种建立在应用层基础上的安全协议,通过对密码进行加密传输验证,可以

1、概念介绍

ssh(Secure shell),安全外壳协议,是一种建立在应用层基础上的安全协议,通过对密码进行加密传输验证,可以在不安全的网络中对网络服务提供安全地传输环境,实现SSH客户端和SSH服务器的连接,所以SSH是基于客户端-服务器模式。

2、功能作用

通过使用SSH,可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现,而且也能够方式DNS欺骗和IP欺骗。还有一个好处就是,传输的数据是经过压缩的,所以可以加快传输的速度。

SSH有很多功能,它既可以替代Telnet,又可以为FTP、Pop,甚至为PPP提供和一个安全的“通道”。

3、服务组成

SSH服务由服务端软件OpenSSH和连接客户端(SSH、SecureCRT、xshell等)组成,默认端口是22。SSH是一个守护进程,负责实时监听客户端请求,并进行处理。

4、框架组成

SSH协议框架中有三个主要协议:传输层协议、用户认证协议、连接协议。

  1. 传输层协议(The Transport Layer Protocol):提供服务器认证,数据安全性,信息完整性等功能的支持。
  2. 用户认证协议(The Authentication Protocol):为服务器提供客户端的身份的识别。
  3. 连接协议(The Connection Protocol):将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用;各种高层应用协议可以相对地独立于SSH基本体系之外,然后依靠这个基本框架,通过连接协议使用SSH的安全机制。
    在这里插入图片描述

5、工作流程

  1. 版本号协商阶段
    SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确实使用的版本。
    (1)服务端开启22端口,等待客户端发起连接请求。
    (2)客户端向服务端发起tcp初始连接请求,建立后,服务端向客户端发送报文(版本标志字符串:SSH-<主协议版本号>.<次协议版本号>-<软件版本号>)
    (3)客户端收到报文后,解析数据包,如果服务端的协议版本号比自己低,且客户端能支持服务端的低版本,就采用服务器端的低版本协议号,否则采用客户端自己的协议版本号。
    (4)客户端回应服务器一个报文,包含客户端决定使用的协议版本号。服务端会比较客户端发来的版本号,决定是否同客户端进行正常工作。
    (5)协商成功,就会进入密钥和算法协商阶段,否则服务端断开TCP连接。

注意:版本号协商阶段报文都是采用明文方式传输的。

  1. 密钥和算法协商阶段
    SSH支持多种加密算法,双方根据服务端和客户端支持的算法,协商出最终使用的算法。

(1)服务端和客户端分别发送算法协商报文给对方,报文中包含自己支持的公钥算法列表、加密算法列表、Mac(Message Authentication Code,消息验证码)算法列表、压缩算法列表等协商信息。
(2)服务端和客户端根据对方和自己支持的算法列表确定最终使用的算法。
服务端和客户端利用DH(Diffie-Hellmenan Exchange)算法,主机密钥对等参数,生成会话密钥和会话ID,然后双方都拿到了同样的会话ID和会话密钥。
(3)后续数据通信,两端都会使用会话密钥进行加密和解密,从而保证数据传送的安全。

注意:在协商阶段之前,服务器端已经生成RSA或DSA密钥对,主要用于参与会话密钥的生成。

  1. 认证阶段
    SSH客户端向服务端发起认证请求,服务端对客户端进行认证。

(1)客户端向服务端发送认证请求,认证请求信息中包含用户名、认证方法、与该认证方法相关的内容(比如,passWord认证时,内容为密码)。
服务端对客户端进行认证,如果认证失败,会向客户端发送认证失败消息,其中也包含可以再次发起认证的方法列表。
(2)客户端从服务端返回地认证方法列表中选取一种认证方法再次进行认证。
(3)该过程反复进行,直到认证成功或者认证次数到达上限,服务端关闭连接为止。

  1. 会话请求阶段
    认证通过后,客户端向服务端发送会话请求。

(1)服务器等待客户端的请求
(2)认证通过后,客户端向服务器发送会话请求
(3)服务器处理客户端的请求,请求被成功处理后,服务端会向客户端回应SSH_SSMG_SUCCESS包,SSH进入交互回话阶段;否则回应SSH_SSMG_FaiLURE包,表示服务器处理请求失败或者不能识别请求。

  1. 交互会话阶段
    会话请求通过后,服务端和客户端可以进行信息的交互。

(1)客户端将要执行的命令加密后传给服务器
(2)服务器接收到报文,解密后执行该命令,将执行的结果加密发还给客户端
(3)客户端将接收到的结果解密后显示到终端上

说明:在当下阶段,数据可以被双向传送。

6、认证方式

  1. password认证

    客户端向服务端发送password认证请求,然后将用户名和密码加密后发送给服务器;服务器将该信息解密后得到用户名和密码的明文。与自己设备上保存的用户名和密码进行比较,并返回认证成功或失败的消息。

  2. publickey认证

    采用数字签名的方法来认证客户端。目前,设备上可以利用RSA和DSA两种公共密钥算法实现数字签名。

    客户端发送包含用户名、公共密钥和公共密钥算法的publickey认证请求给服务端。服务器端对公钥进行合法性检查,如果不合法则直接发送失败消息;否则服务器利用数字签名对客户端进行认证,并返回认证成功或失败的消息。

在这里插入图片描述
SSH密钥认证登录流程:

(1)在进行SSH连接之前,SSH客户端需要先生成自己的公钥私钥对,并将自己的公钥存放在SSH服务器上。
(2)SSH客户端发送登录请求,SSH服务器就会根据请求中的用户名等信息在本地搜索客户端的公钥,并用这个公钥加密一个随机数发送给客户端。
(3)客户端用自己的私钥对返回信息进行解密,并发送给服务器。
(4)服务器验证客户端解密的信息是否正确,如果正确则认证通过。

由于SSH协议是面向互联网网络中主机之间的互访与信息交换,所以主机密钥成为基本的密钥机制。也就是说,SSH协议要求每一个使用本协议的主机都必须至少有一个自己的主机密钥对,服务方通过对客户方主机密钥的认证之后,才能允许其连接请求。一个主机可以使用多个密钥,针对不同的密钥算法而拥有不同的密钥,但是至少有一种是必备的,即通过 DSS算法产生的密钥。

SSH协议关于主机密钥认证的管理方案有两种,如下图所示:
在这里插入图片描述
方案1
在这里插入图片描述
方案2

每一个主机都必须有自己的主机密钥,密钥可以有多对,每一对主机密钥对包括公开密钥和私有密钥。在实际应用过程中怎样使用这些密钥,并依赖它们来实现安全特性呢?如上图所示,SSH协议框架中提出了两种方案。

在第一种方案中,主机将自己的公用密钥分发给相关的客户机,客户机在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确定客户机的可靠身份。在图2(a)中可以看到,用户从主机A上发起操作,去访问,主机B和主机C,此时,A成为客户机,它必须事先配置主机B和主机C的公开密钥,在访问的时候根据主机名来查找相应的公开密钥。对于被访问主机(也就是服务器端)来说则只要保证安全地存储自己的私有密钥就可以了。

在第二种方案中,存在一个密钥认证中心,所有系统中提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户机的主机则只要保存一份认证中心的公开 密钥就可以了。在这种模式下,客户机在访问服务器主机之前,还必须向密钥认证中心请求认证,认证之后才能够正确地连接到目的主机上。

很显然,第一种方式比较容易实现,但是客户机关于密钥的维护却是个麻烦事,因为每次变更都必须在客户机上有所体现;第二种方式比较完美地解决管理维护问题, 然而这样的模式对认证中心的要求很高,在互联网络上要实现这样的集中认证,单单是权威机构的确定就是个大麻烦,有谁能够什么都能说了算呢?但是从长远的发 展来看,在企业应用和商业应用领域,采用中心认证的方案是必要的。

另外,SSH协议框架中还允许对主机密钥的一个折中处理,那就是首次访问免认证。首次访问免认证是指,在某客户机第一次访问主机时,主机不检查主机密钥,而向该客户都发放一个公开密钥的拷贝,这样在以后的访问中则必须使用该密钥,否则会被认为非法而拒绝其访问。

  1. password+publickey认证(SSH2.0)
    指定该用户的认证方式为password+publickey认证必须同时满足。

    说明:客户端版本为SSH1的用户只要通过其中一种认证即可登录;客户端版本为SSH2的用户必须两种认证都通过才可以登录。

  2. any认证
    指定该用户的认证方式可以是password或者publickey中任意一种。

7、常用命令

  1. 远程登录
    ssh 用户名@远程主机IP:首次登陆需要下载对方公钥。
    示例:ssh root@196.168.1.100

  2. 远程上传
    scp[需要上传文件的本地位置] root@远程主机ip:[需要保存在远程主机上午路径]:从本地上传文件到远程主机。
    示例:scp /root/test.sh root@192.168.1.100

  3. 远程复制
    scp root@远程主机ip:[远程主机文件绝对路径][需要保存的本地位置]:从远程主机下载文件到本机。
    示例:scp root@192.168.1.100:/root/test.sh /root

来源地址:https://blog.csdn.net/muyiyufei/article/details/129287865

--结束END--

本文标题: 【计网】SSH协议详解

本文链接: https://www.lsjlt.com/news/374039.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【计网】SSH协议详解
    文章目录 1、概念介绍2、功能作用3、服务组成4、框架组成5、工作流程6、认证方式7、常用命令 1、概念介绍 SSH(Secure Shell),安全外壳协议,是一种建立在应用层基础上的安全协议,通过对密码进行加密传输验证,可以...
    99+
    2023-08-18
    ssh 服务器 运维
  • 详解计算机网络TCP/IP协议
    这篇文章主要介绍“详解计算机网络TCP/IP协议”,在日常操作中,相信很多人在详解计算机网络TCP/IP协议问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”详解计算机网络TCP...
    99+
    2022-10-19
  • 【网络】HTTP协议详解
    😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!💪💪...
    99+
    2023-08-23
    网络 http 网络协议 服务器 c++
  • NAT协议(网络地址转换协议)详解
    NAT协议(网络地址转换协议)详解 为什么需要NATNAT的实现方式静态NAT动态NATNAPT NAT技术的优缺点优点缺点 NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程,主要用于实现私有网络访问公...
    99+
    2023-08-23
    网络 智能路由器 服务器
  • Telnet协议详解
    目录 1、Telnet协议 2、telnet协议的基本概念 1、NVT(Network Virtual Terminal)网络虚拟终端  2、telnet连接 3、telnet的C/S模式 3、telnet的工作原理 1、Telnet协议 ...
    99+
    2023-09-09
    服务器 网络 linux
  • FTP协议详解
    文章目录 1 FTP概述2 实验环境3 FTP详解3.1 文件传输过程3.2 报文格式3.3 数据连接3.4 主动模式3.5 被动模式3.6 匿名服务器 4 总结 链接: C/C...
    99+
    2023-10-06
    服务器 网络 linux
  • DHCP协议详解
    DHCP是什么 1.1 DHCP定义 DHCP( Dynamic Host Configuration Protocol, 动态主机配置协议)定义: 存在于应用层(OSI) 前身是BOOTP(Bootstrap P...
    99+
    2023-10-12
    网络 服务器 网络协议 DHCP DHCP6 Powered by 金山文档
  • https协议详解
    目录HTTPS协议概念HTTPS通信(握手)过程HTTPS的优缺点优点:缺点:HTTPS如何保证安全对称加密:非对称加密:TLS/SSL的工作原理TLS/SSL概述TLS/SSL功能...
    99+
    2022-11-13
    什么是https协议 HTTPS协议详解 HTTPS协议基础知识
  • ARP协议详解
    目录 ARP概述ARP协议的定义物理地址逻辑地址为什么需要2级地址 ARP工作原理如何建立ARP高速缓存使用ARP协议的4种不同情况高速缓存的生存周期 ARP报文格式封装ARP协议抓包分析抓取ARP请求报文抓取ARP响应报文...
    99+
    2023-08-21
    网络 服务器 linux 网络协议
  • 计算机网络编程MQTT协议基础原理详解
    目录什么是 MQTT 协议MQTT 基础发布 - 订阅模式可拓展性消息过滤基于主题的过滤基于内容的过滤基于类型的过滤MQTT 与消息队列的区别MQTT 重要概念MQTT client...
    99+
    2022-11-12
  • PHP伪协议详解
    PHP伪协议详解 php支持的伪协议 1 file:// — 访问本地文件系统2 http:// — 访问 HTTP(s) 网址3 ftp:// — 访问 FTP(s) URLs4 php:// — ...
    99+
    2023-09-09
    php
  • HTTP协议详解(一)
    目录 1.什么是HTTP协议 2.HTTP的协议格式 使用fiddler抓包工具 理解代理 查看请求内容 3.HTTP请求(Request) 认识URL URL encode 认识method GET方法 POST方法 经典面试题:POST...
    99+
    2023-08-31
    http 网络协议 网络 java 服务器
  • JavaTCP网络通信协议详细讲解
    TCP与UDP都属于TCP/IP协议 TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的...
    99+
    2022-11-13
  • http协议详解(超详细)
    http1. 基础概念篇1.1 介绍  HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Intern...
    99+
    2023-06-04
  • [CTF/网络安全] 攻防世界 Web_php_include 解题详析(php伪协议、data伪协议、file伪协议)
    [CTF/网络安全] 攻防世界 Web_php_include 解题详析 代码审计PHP_include文件包含漏洞及伪协议PayloadPHP伪协议恶意 PHP 伪协议data伪协议恶意 d...
    99+
    2023-10-18
    web安全 CTF php 网络安全
  • HTTP协议详细解读
    文章目录 1. HTTP概念2. HTTP 特点3. HTTP 协议的工作过程4. 认识URL5. HTTP 请求数据格式6. HTTP 响应数据格式7. 总结📂橙子精品文章学习推荐 1. HTTP概念 HTTP...
    99+
    2023-08-16
    http java 网络
  • Mqtt通信协议详解
    文章目录 1. 简介mqtt2.mqtt协议实现3.Mqtt数据包4. QoS等级5. mqtt传输安全保证5.1 应用层5.2 传输层5.2.1 TLS安全协议 5.3 网络层 ...
    99+
    2023-09-03
    服务器 网络
  • PHP伪协议filter详解,php://filter协议过滤器
    「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 ...
    99+
    2023-08-31
    php 网络安全 人工智能 ai
  • 基于go实例网络存储协议详解
    目录主要内容一.网络存储是什么二.iSCSI是什么iscsid三.RDMA是什么四.NVME-oF是什么主要内容 一.网络存储是什么 二.iSCSI是什么 三.RDMA是什么 四....
    99+
    2023-03-06
    go网络存储协议 go 存储协议
  • NTP(Network Time Protocol)协议详解
    一、NTP的基本概念: NTP(Network Time Protocol)------网络时间协议-----应用层协议,用来在分布式时间服务器和客户端之间进行时间同步。 二、采用NTP的目的: 是对...
    99+
    2023-09-10
    网络 服务器 运维 NTP time protocol
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作