今天给大家分享一下我关于SSH协议的知识。我希望这有帮助。
1、SSH协议概念介绍
SSH(Secure Shell) Secure Shell 协议是一种基于应用层的安全协议,通过对密码和网络进行加密和验证,为不安全网络上的网络服务提供安全的传输环境。 SSH 服务器。换句话说,SSH是基于客户端/服务器模式的。
2、SSH服务组成
SSH服务由服务器软件OpenSSH和连接客户端(SSH、SecureCRT、xshell等)组成。默认端口为22。 SSH是一个守护进程,实时监控和处理客户端请求。
3、SSH协议框架组成
SSH协议框架的三大核心协议:传输层协议、用户认证协议、连接协议。
传输层协议:提供对服务器身份验证、数据安全、信息完整性等功能的支持。用户身份验证协议:向服务器提供客户端的身份。连接协议:将加密信息隧道复用为多个逻辑通道,并将其呈现给更高层的应用协议。各种高层应用协议相对独立并使用SSH基础系统。通过连接协议的SSH 安全机制。
4、SSH工作流程
4.1 版本号协商阶段
SSH目前有SSH1和SSH2两个版本,双方通过版本协商决定使用哪个版本。
服务器打开22端口,等待客户端发起连接请求。建立后,服务器向客户端发送消息(版本标志字符串:SSH主协议版本号)。客户端收到Secondary Protocol Version Number-Software Version Number)消息后,解析数据包。如果服务器的协议版本号比你的低,并且客户端可以支持服务器的较低版本,则使用服务器的较低版本。版本协议号。否则,使用客户端自己的协议版本号。客户端向服务器响应一条消息,其中包含它决定使用的协议的版本号。服务器比较客户端发送的版本号,以确定是否可以成功与客户端操作。如果协商成功,则进入密钥和算法协商阶段。否则,服务器将断开TCP 连接。注意:版本号协商阶段的消息以明文形式发送。
4.2 密钥和算法协商阶段
SSH 支持多种加密算法。双方根据服务器和客户端支持的算法协商最终的算法。
服务器和客户端分别向对方发送算法协商消息。消息中包含公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表以及其他支持的算法列表等协商信息。公钥算法列表。服务器和客户端根据彼此和自己支持的算法列表决定最终使用的算法。服务器和客户端使用Diffie-Hellman交换算法、主机密钥对等参数生成会话密钥和会话ID,双方获得相同的会话ID和会话密钥。在后续的数据通信中,双方均使用会话密钥进行加密和解密,从而保证了数据传输的安全认证阶段,会话ID用于认证过程。注意:在协商阶段之前,服务器已经生成了RSA或DSA密钥对。这主要用于参与会话密钥生成。
4.3 认证阶段
SSH客户端向服务器发起认证请求,服务器对客户端进行认证。
客户端将用户名、认证方法以及与认证方法相关的内容(例如,在密码认证的情况下为密码)作为认证请求信息发送到服务器。服务器对客户端进行身份验证。如果认证失败,服务器会向客户端发送认证失败消息。此消息还包括重新启动身份验证的方法列表。客户端通过从服务器返回的身份验证方法列表中选择一种身份验证方法来重新进行身份验证。重复此过程,直到认证成功或达到最大认证次数,服务器关闭连接。
4.5 会话请求阶段:
客户端认证通过后,向服务器端发送会话请求。
服务器等待客户端请求。身份验证成功后,客户端向服务器发送会话请求,服务器处理客户端的请求。如果请求成功处理,服务器将向客户端响应SSH_SMSG_SUCCESS 数据包,SSH 进入交互会话阶段。否则,服务器将响应SSH_SMSG_FAILURE 数据包,表明它无法处理请求或不知道服务器。要求。
4.6 交互会话阶段
一旦会话请求通过,服务器和客户端就可以交换信息。
客户端将要执行的命令加密并发送给服务器,服务器接收消息并解密,执行命令,并将执行结果加密并发回给客户端。描述:目前可以双向发送数据。
5、SSH的认证方式
5.1 password认证:
客户端向服务器发送密码认证请求,并将用户名和密码加密后发送给服务器。服务器对信息进行解密,得到用户名和密码的明文并进行比对。比较设备上存储的用户名和密码,并返回身份验证成功或失败消息。
5.2publickey 认证:
使用数字签名方法对客户端进行身份验证。目前,有两种公钥算法可用于在设备上实现数字签名:RSA 和DSA。
客户端向服务器发送公钥认证请求,请求中包含用户名、公钥和公钥算法。服务器和客户端检查公钥的有效性,如果无效则直接发送失败消息。否则,服务器使用数字签名对客户端进行身份验证,并返回身份验证成功或失败的消息。
5.3. password-publickey 认证(SSH2.0)
指定该用户的认证方式,要求同时满足密码认证和公钥认证。
注意:客户端版本SSH1的用户只要通过任一认证即可登录,而客户端版本SSH2的用户则必须通过两种认证才可以登录。
5.4 any认证(SSH2.0)
指定该用户的身份验证方法。它可以是密码或公钥。
6、SSH常用命令
6.1 远程登录
ssh username@远程主机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
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。