最新公告
  • 欢迎您光临AA分享网,这里是高级程序员技术学习、分享的分享平台立即加入我们
  • 快速了解SSH的工作原理

    熟悉Linux的人肯定都知道SSH。SSH是一种用于安全访问远程服务器的网络协议。它将客户端与服务端之间的消息通过加密保护起来,这样就无法被窃取或篡改了。那么它安全性是如何实现的呢?

    为了理解SSH,先要介绍两个重要概念:对称加密非对称加密

    对称加密:

    在对称加密中,客户端和服务端使用同一个密钥对数据进行加密和解密。这种方法的好处是加密强度高,很难破解。缺点也很明显,即密钥本身容易被泄漏。因此,如何保存密钥成为了关键问题。于是引出了第二种加密方式:非对称加密。

    非对称加密:

    在非对称加密中有两个密钥,公钥和私钥。这两个密钥配对产生和使用。用公钥加密的数据,必须用与其对应的私钥才能解开。并且,私钥无法通过公钥获取。因此,公钥是可以被公开的,而私钥则必须被安全存放。

    在SSH中,非对称加密被用来在会话初始化阶段为通信双方进行会话密钥的协商。由于非对称加密的计算量开销比较大,因此一旦双方的会话密钥协商完成,后续的加密都将采用对称加密来进行。

    接下来,我们来看一看SSH会话建立的过程。

    1. 客户端发起一个TCP连接,默认端口号为22.

    2. 服务端收到连接请求后,将自己的一些关键信息发给客户端。这些信息包括:

    – 服务端的公钥:客户端在收到这个公钥后,会在自己的“known_hosts”文件进行搜索。如果找到了相同的公钥,则说明此前连接过该服务器。如果没有找到,则会在终端上显示一段警告信息,由用户来决定是否继续连接。

     [email protected]:~$ ssh geekyshacklebolt
     The authenticity of host ‘geekyshacklebolt (192.168.42.222)’ can’t be established.
     ECDSA key fingerprint is SHA256:Ql/KnGlolY9eCGuYK3OX3opnSyJQzsbtM3DW/UZIxms.
     Are you sure you want to continue connecting (yes/no)?
     
    – 服务器所支持的加密算法列表:客户端根据此列表来决定采用哪种加密算法。

    3. 生成会话密钥。此时,客户端已经拥有了服务端的公钥。接下来,客户端和服务端需要协商出一个双方都认可的密钥,并以此来对双方后续的通信内容进行加密。

    密钥协商是通过Diffie – Hellman算法来实现的。具体过程是:

    1)服务端和客户端共同选定一个大素数,叫做种子值;

    2)服务端和客户端各自独立地选择另外一个只有自己才知道的素数;

    3)双方使用相同的加密算法(如AES),由种子值和各自的私有素数生成一个密钥值,并将这个值发送给对方;

    4)在收到密钥值后,服务端和客户端根据种子值和自己的私有素数,计算出一个最终的密钥。这一步由双方分别独立进行,但是得到的结果应该是相同的。

    5)双方使用上一步得到的结果作为密钥来加密和解密通信内容。

    4. 接下来,客户端将自己的公钥id发送给服务端,服务端需要对客户端的合法性进行验证:

    1)服务端在自己的“authorized_keys”文件中搜索与客户端匹配的公钥。

    2)如果找到了,服务端用这个公钥加密一个随机数,并把加密后的结果发送给客户端。

    3)如果客户端持有正确的私钥,那么它就可以对消息进行解密从而获得这个随机数。

    4)客户端由这个随机数和当前的会话密钥共同生成一个MD5值。

    5)客户端把MD5值发给服务端。

    6)服务端同样用会话密钥和原始的随机数计算MD5值,并与客户端发过来的值进行对比。如果相等,则验证通过。

    至此,通信双方完成了加密信道的建立,可以开始正常的通信了。

    总结:

    SSH巧妙地利用了对称加密与非对称加密各自的特点,实现了一套安全保密的远程控制协议。

    AA分享网一个高级程序员的学习、分享的IT资源分享平台
    AA分享网-企业网站源码-PHP源码-网站模板-视频教程-IT技术教程 » 快速了解SSH的工作原理

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    站壳网
    一个高级程序员模板开发平台

    发表评论

    • 74会员总数(位)
    • 2802资源总数(个)
    • 57本周发布(个)
    • 10 今日发布(个)
    • 237稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情