SSH

SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。

 

当SSH应用于STelnet,SFTP以及SCP时,使用的默认SSH端口都是22。当SSH应用于NETCONF时,可以指定SSH端口是22或者830。SSH端口支持修改,更改后当前所有的连接都会断开,SSH服务器开始侦听新的端口。

SSH工作:

(1)连接建立---SSH服务器在指定的端口侦听客户端的连接请求,在客户端向服务器发起连接请求后,双方建立一个TCP连接。

(2)版本协商-----SSH协议目前存在SSH1.X(SSH2.0之前的版本)和SSH2.0版本。SSH2.0协议相比SSH1.X协议来说,在结构上做了扩展,可以支持更多的认证方法和密钥交换方法,同时提高了服务能力。SSH服务器和客户端通过协商确定最终使用的SSH版本号。

(3)算法协商-------SSH支持多种加密算法,双方根据各自支持的算法,协商出最终用于产生会话密钥的密钥交换算法、用于数据信息加密的加密算法、用于进行数字签名和认证的公钥算法以及用于数据完整性保护的HMAC算法。

(4)密钥交换-------服务器和客户端通过密钥交换算法,动态生成共享的会话密钥和会话ID,建立加密通道。会话密钥主要用于后续数据传输的加密,会话ID用于在认证过程中标识该SSH连接。

(5)用户认证-------SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证。SSH支持以下几种认证方式:

  • 密码(password)认证:客户端通过用户名和密码的方式进行认证,将加密后的用户名和密码发送给服务器,服务器解密后与本地保存的用户名和密码进行对比,并向客户端返回认证成功或失败的消息。

  • 密钥(publickey)认证:客户端通过用户名,公钥以及公钥算法等信息来与服务器进行认证。

  • password-publickey认证:指用户需要同时满足密码认证和密钥认证才能登录。

  • all认证:只要满足密码认证和密钥认证其中一种即可。

(6)会话请求-------认证通过后,SSH客户端向服务器端发送会话请求,请求服务器提供某种类型的服务,即请求与服务器建立相应的会话。

(7)会话交互---------会话建立后,SSH服务器端和客户端在该会话上进行数据信息的交互

posted @   KLAPT  阅读(284)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示