产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面所有产品
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

SSH是什么

SSH是一种常见的远程登录协议。在网络安全问题日益严重的今天,社会和个人都对信息安全有更高的要求。尤其是网络环境复杂的情况下,相比明文传输的Telnet等协议,SSH能够为你带来更加安全放心的体验。

  • 发布时间:2022-11-24

  • 点击量:

  • 点赞:

分享至

我想评论

1 SSH简介
SSH协议(Secure Shell,安全外壳)是一种需要进行加密和认证的,用于远程访问及文件传输的网络安全协议。
SSH功能类似于Telnet服务,但SSH基于加密和认证的特性可以为用户提供更强大的安全保障机制,在用户使用不安全的网络环境登录设备时,SSH能够有效保护设备不受IP地址欺诈、明文密码截取等攻击。
目前存在SSHv1和SSHv2两个版本,二者互不兼容。相比SSHv1,SSHv2能够提供更高的性能和安全性。
                                                                              
2 SSH基本结构
SSH协议基于客户端/服务器结构,客户端可以使用SSH协议登录到服务器,进行远程访问或文件传输等操作。
图2-1 SSH基本结构图
                                                                                                  
3 SSH基本交互流程
SSH客户端和SSH服务器交互流程可以分为以下七个阶段:建立连接、版本号协商、密钥交换与算法协商、用户认证、会话请求、会话交互和会话关闭。
(1) 建立连接阶段
a 服务器端监听TCP 22号端口,等待客户端的连接。
b 客户端向服务器的22号端口发起TCP连接请求,与服务器端建立起TCP连接。
(2) 版本号协商阶段
a 服务器端向客户端发送版本协商报文。
b 客户端接收并处理该报文后,回复服务端决定采用的协议版本号。
c 服务器端处理客户端回复的信息,确认协商版本成功与否。
(3) 密钥交换与算法协商阶段
若版本号协商成功,进入密钥交换与算法协商。
a 服务器端与客户端互相向对端发送算法协商报文,根据本端支持的算法来确定最终使用的算法。
b 服务器端与客户端利用密钥交换算法、主机密钥等相关信息,生成会话密钥与会话ID,利用它们进行后续的用户认证以及数据传输的加解密。
(4) 用户认证阶段
加密通道建立起来之后,进入用户认证阶段。
a 客户端向服务器端发送认证请求。
b 服务器端对客户端进行认证。若认证成功,则进入下一阶段;若认证失败次数达到上限,则服务器端关闭连接。
(5) 会话请求阶段
a 认证成功后,客户端向服务器端发送会话请求。
b 服务器等待并处理客户端的会话请求,请求被处理成功之后,SSH进入会话交互阶段。
(6) 会话交互阶段
会话请求成功后,进入会话交互阶段,允许加密数据双向传送与处理。
a 客户端将需要执行的命令发送给服务器。
b 服务器接收到命令后进行解密、解析并处理。
c 服务器将处理结果加密后发给客户端。
d 客户端收到服务器消息后进行解密与处理。
(7) 会话关闭阶段
服务器和客户端断开连接并关闭会话。
                                                                    
4 SSH远程登录实践
4.1   配置SSH服务器
大部分锐捷交换机和路由器都支持SSH客户端和SSH服务器功能,此处以锐捷交换机为例进行服务器配置(SSH端口号为可选配置,通过变更SSH端口号能够有效提高SSH的安全性)。
Ruijie> enable
Ruijie# configure terminal
Ruijie(config)# enable service ssh-server                // 开启SSH服务器功能
Ruijie(config)# ip ssh version 2                         // 使用SSHv2版本
Ruijie(config)# username test password Ruijie123         // 配置本地账号名test,密码Ruijie123
Ruijie(config)# ip ssh port 2000                         //(可选)不配置时,默认SSH端口号为22
Ruijie(config)# line vty 0 4                             // 配置VTY终端
Ruijie(config-line)# login local                         // 在VTY终端上开启SSH本地账号登录功能
                                                                                    
4.2   配置SSH客户端
Linux和Windows系统上都有大量的SSH客户端可供使用,例如Linux系统可以直接通过Shell下的ssh命令进行登录,Windows系统上有Putty、SecureCRT等应用软件。此处以SecureCRT为例,使用SSH协议登录到上述的锐捷交换机上。
(1) 根据SSH服务器的配置,选择SSHv2协议,Hostname为SSH服务器IP,Port为SSH端口号,Authentication为支持的认证类型,并点击“Connect”按钮进行SSH远程登录。
                                                                 
(2) 第一次SSH远程登录该设备需要确认秘钥,点击“Accept Once”确认。
                                                                               
(3) 输入账户名和密码。
                                                         
(4) 成功登录锐捷交换机设备,可以在设备上执行各种管理操作。
                                                                                          
5 SSH安全性
SSH客户端与SSH服务器的所有交互数据都是经过加密的,即使在不安全的网络环境下,也可以较好地避免用户信息和交互数据泄露的风险。以下使用Telnet协议来进行对比,通过Wireshark抓包确认Telnet报文和SSH报文对账号信息是否有做加密处理。
5.1   Telnet登录报文
如下图所示,使用Telnet远程访问服务器时(账号名test,密码Ruijie123),对Telnet客户端发往Telnet服务器的报文进行抓包,可以发现Telnet登录的账号和密码在报文中都是明文保存的。如果客户端处于不安全的环境中,则账号和密码信息容易被非法截取。
图5-1 Telnet登录报文抓包示意图
                                                                                         
5.2   SSH登录报文
同Telnet类似(账号名test,密码Ruijie123),使用SSH远程访问服务器时,对SSH客户端发往SSH服务器的报文进行抓包,可以发现SSH远程登录的账号和密码在报文中都是经过加密的。因此,即使客户端处于不安全的环境中,报文被截取也不会轻易导致账号和密码信息泄露。
图5-2 SSH远程登录报文抓包示意图
                                                                                       
6 总结
在网络安全问题日益严重的今天,社会和个人都对信息安全有更高的要求。在选择远程登录协议时,也更加偏向安全性高的SSH协议。尤其在网络环境复杂,安全性得不到保障的情况下,相比明文传输的Telnet等协议,SSH协议能够带来更加安全放心的体验。
                                                                                    
相关链接
如何在VSCode中使用SSH客户端

点赞

更多技术博文

任何需要,请联系我们

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式