您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

了解SSH工作流

时间:2020-04-21 10:43:20  来源:  作者:

翻译文章,原文:Understanding SSH workflow[1]

 


 

了解SSH工作流

 

Telnet用于与远程服务器通信。但是,Telnet并不是一种安全的通信协议,因为它不使用任何安全机制,并且以纯文本形式(包括密码)在网络/互联网上传输数据,因此任何人都可以嗅探数据包以获取重要信息。因此,为了克服这个问题,SSH诞生了。现在,让我们继续了解SSH。

什么是SSH?

SSH,也称为安全外壳程序或安全套接字外壳程序,是一种网络协议,可为管理员提供一种访问远程计算机的安全方式。SSH在两方(客户端和服务器)之间建立了加密保护的连接,对每一方进行身份验证,并来回传递命令和输出。

了解SSH工作流

 

 

SSH是怎么工作的?

SSH协议使用对称加密,非对称加密和哈希来确保信息的传输。客户端和服务器之间的SSH连接分为三个阶段:

1.客户端验证服务器2.生成会话密钥以加密所有通信3.客户端认证

现在,我将在不同的部分中讨论这些阶段。

1.服务器验证

客户端启动与服务器的SSH连接。服务器侦听默认端口22(可以更改此端口)以进行SSH连接。此时,将验证服务器身份。有两种情况:

1.如果客户端是第一次访问服务器,则要求客户端通过验证服务器的公共密钥来手动认证服务器。服务器的公共密钥可以使用 ssh-keyscan 命令找到,也可以在其他位置找到(WHERE?google!)。一旦密钥被验证,服务器信息就会添加到客户端计算机~/.ssh目录中的known_hosts文件中。 known_hosts文件包含有关客户端所有已验证服务器的信息。

2.如果客户端不是第一次访问服务器,则将服务器的身份与known_hosts文件中先前记录的信息进行匹配以进行验证。

了解SSH工作流

 

 

2.生成会话密钥

验证服务器后,双方使用称为 Diffie-Hellman[2] 算法的某种版本协商会话密钥。该算法的设计方式是,双方在会话密钥的生成中均会做出同等的贡献。生成的会话密钥是共享对称密钥,即,相同的密钥用于加密和解密。

3.客户端认证

最后阶段涉及客户端的身份验证。使用SSH密钥对进行身份验证。顾名思义,SSH密钥对只不过是用于两个不同目的的两个密钥对。一种是用于加密数据并可以自由共享的公钥。另一个是私钥,用于解密数据,并且永远不会与任何人共享。

建立对称加密后,将对客户端进行身份验证,如下所示:

1.客户端首先向服务器发送要验证的密钥对的ID。

2.服务器检查客户端尝试登录的帐户的authorized_keys文件中的密钥ID。

3.如果在文件中找到具有匹配ID的公钥,则服务器将生成一个随机数,并使用该公钥对数字进行加密并发送此加密的消息。

4.如果客户端具有正确的私钥,它将解密该消息以获得服务器生成的随机数

5.客户端将获得的随机数与共享会话密钥结合在一起,并计算该值的MD5哈希值。

6.然后,客户端将此MD5哈希发送回服务器,作为对加密号码消息的答复。

7.服务器使用相同的共享会话密钥和发送给客户端的原始号码自行计算MD5值。它将自己的计算结果与客户端发回的计算结果进行比较。如果这两个值匹配,则证明该客户端拥有私钥,并且该客户端已通过身份验证

密钥的不对称允许对客户端进行身份验证,因为客户端只有在具有正确的关联私钥的情况下才能解密消息。

 

了解SSH工作流

 

 

结论

该博客的主要思想是帮助读者了解什么是ssh以及用户尝试登录到远程服务器时发生的情况。

References

[1] Understanding SSH workflow: https://medium.com/@Magical_Mudit/understanding-ssh-workflow-66a0e8d4bf65

[2] Diffie-Hellman: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange



Tags:SSH工作流   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Telnet用于与远程服务器通信。但是,Telnet并不是一种安全的通信协议,因为它不使用任何安全机制,并且以纯文本形式(包括密码)在网络/互联网上传输数据,因此任何人都可以嗅探数据包以获取重要信息。因此,为了克服这个问题,SSH诞...【详细内容】
2020-04-21  Tags: SSH工作流  点击:(64)  评论:(0)  加入收藏
▌简易百科推荐
以京训钉开发平台接口文档为例,使用HttpClient类请求调用其接口,对数据进行增删改查等操作。 文档地址: https://www.yuque.com/bjjnts/jxd/bo1oszusing System;using System.C...【详细内容】
2021-12-28  Wednes    Tags:HttpClient   点击:(1)  评论:(0)  加入收藏
阿里云与爱快路由安装组网教程一、开通好阿里云轻量服务器之后在服务器运维-远程连接处进行远程 二、进入控制台后在root权限下根据需要安装的固件位数复制下面命令。32位:wg...【详细内容】
2021-12-28  ikuai    Tags:组网   点击:(1)  评论:(0)  加入收藏
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(4)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(3)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(35)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(10)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(22)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(31)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条