操作系统:SSH协议知识介绍


prtyaa
prtyaa 2023-12-25 12:21:53 66981
分类专栏: 资讯

今天给大家分享SSH协议相关的知识介绍,希望对大家能有所帮助!

1、SSH协议概念介绍

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

 

2、SSH服务组成

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

3、SSH协议框架组成

SSH协议框架中核心部分的三个协议:传输层协议、用户认证协议、连接协议。

  • 传输层协议(The Transport Layer Protocol):提供服务器认证,数据安全性,信息完整性等功能的支持。

  • 用户认证协议(The User Authentication Protocol):为服务器提供客户端的身份的识别。

  • 连接协议(The Connection Protocol):将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用; 各种高层应用协议可以相对地独立于SSH基本体系之外,然后依靠这个基本框架,通过连接协议使用SSH的安全机制。

 

 

4、SSH工作流程

4.1 版本号协商阶段

SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本

  • 服务端开启22端口,等待客户端发起连接请求

  • 客户端向服务端发起TCP初始连接请求,建立后,服务端向客户端发送报文(版本标志字符串:SSH-<主协议版本号>.<次协议版本号>-<软件版本号>>)

  • 客户端收到报文后,解析数据包,如果服务端的协议版本号比自己的低,且客户端能支持服务端的低版本,就采用服务器端的低版本协议号,否则采用客户端自己的协议版本号。

  • 客户端回应服务器一个报文,包含客户端决定使用的协议版本号。服务端会比较客户端发来的版本号,决定是否能同客户端进行正常工作。

  • 协商成功,就会进入密钥和算法协商阶段,否则服务端断开TCP连接。

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

4.2 密钥和算法协商阶段

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

  • 服务端和客户端分别发送算法协商报文给对方,报文中包含自己支持的公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等协商信息。

  • 服务端和客户端根据对方和自己支持的算法列表确定最终使用的算法。

  • 服务端和客户端利用 DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话 ID,然后双方都拿到了相同的会话ID和会话密钥。

  • 后续数据通信,两端都会使用会话密钥进行加密和解密,从而保证了数据传送的安全

  • 认证阶段,两端会使用会话 ID用于认证过程。

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

4.3 认证阶段

SSH客户端向服务端发起认证请求, 服务端会对客户端进行认证

  • 客户端向服务端发送认证请求,认证请求信息中包含用户名、认证方法、与该认证方法相关的内容(比如:password认证时,内容为密码)。

  • 服务端对客户端进行认证,如果认证失败,会向客户端发送认证失败消息,其中也包含可以再次发起认证的方法列表。

  • 客户端从服务端返回的认证方法列表中选取一种认证方法再次进行认证。

  • 该过程反复进行, 直到认证成功或者认证次数达到上限, 服务端关闭连接为止。

4.5 会话请求阶段:

认证通过后,客户端向服务端发送会话请求

  • 服务器等待客户端的请求;

  • 认证通过后,客户端向服务器发送会话请求;

  • 服务器处理客户端的请求。请求被成功处理后, 服务端会向客户端回应 SSH_SMSG_SUCCESS包,SSH进入交互会话阶段;否则回应 SSH_SMSG_FAILURE包,表示服务器处理请求失败或者不能识别请求。

4.6 交互会话阶段

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

  • 客户端将要执行的命令加密后传给服务器;

  • 服务器接收到报文,解密后执行该命令,将执行的结果加密发还给客户端;

  • 客户端将接收到的结果解密后显示到终端上.

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

5、SSH的认证方式

5.1 password认证:

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

5.2publickey 认证:

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

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

5.3. password-publickey 认证(SSH2.0)

指定该用户的认证方式为 password 和 publickey认证必须同时满足。

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

5.4 any认证(SSH2.0)

指定该用户的认证方式可以是 password、 publickey中任意一种。

6、SSH常用命令

6.1 远程登录

ssh 用户名@远程主机ip:首次登陆需要下载对方公钥。

示例:ssh 192.168.1.100

6.2 远程上传

scp [需要上传文件的本地位置] root@远程主机ip:[需要保存在远程主机的路径]:从本地上传文件到远程主机

示例:scp /root/test.sh root@192.168.1.100

6.3 远程复制

scp root@远程主机ip:[远程主机文件绝对路径] [需要保存的本地位置]:从远程主机下载文件到本机

示例:scp root@192.168.1.100:/root/test.sh /root

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=30139
赞同 0
评论 0 条
prtyaaL1
粉丝 1 发表 2554 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1487
银河麒麟打印带有图像的文档时出错  1405
银河麒麟添加打印机时,出现“server-error-internal-error”  1194
统信操作系统各版本介绍  1116
统信桌面专业版【如何查询系统安装时间】  1114
统信桌面专业版【全盘安装UOS系统】介绍  1068
麒麟系统也能完整体验微信啦!  1026
统信【启动盘制作工具】使用介绍  672
统信桌面专业版【一个U盘做多个系统启动盘】的方法  616
信刻全自动档案蓝光光盘检测一体机  526
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!