• linux ssh服务原理简介篇


    连接到远程主机的登陆界面分类,主要有文字接入和图形接入2中方式:

    1. 1、文字接入
    • 文字明文密码接入:Telnet、rsh等为主,目前使用较少
    • 文字密码接入:以ssh为主,基本上取代了telnet、rsh方式
    1. 2、图形化接入:xdmcp、vnc、rdp等
    • SSH是Secure Shell Protocol的简写,传输数据前,将数据加密后再传送到网络上,数据传输过程中的安全性提高
    • SSH协议有两个版本:SSH1和SSH2。SSH2比SSH1更安全,在远程连接的时候加入了检测机制。可以有效防范在连接远程主机的时候被插入攻击代码。SSH协议采用公钥私钥进行加密。
    • 非对称加密:使用公钥和私钥进行数据加密,公钥和私钥必须成对出现

         公钥:顾名思义,一把公共的钥匙,大家都可以取得,并用来加密数据

         私钥:一把私有的钥匙,使用自己的公钥加密的数据,需要自己的私钥才能解密。可以看出私钥不能够外泄,一旦外泄,别人就可以解密使用该公钥加密的数据。

    • 网络中通信是双向的,所以正常通信中本机需要对端的公钥才对。如下图所示

       2、SSH通信动作介绍

     客户端与服务器端的ssh通信过程简化为下图:

     1、服务器端生成公钥文件。当sshd服务启动时,会自动寻找/etc/ssh/ssh_host*的文件。若系统是新装的,则没有公钥文件,sshd会主动计算出相关的公钥文件和私钥文件。

    2、客户端发出请求,想要与客户端建立ssh通信。

    3、server端发送公钥文件给客户端。

    4、客户端首次与server建立连接时,会存档server端的公钥到相关路径的文件中;如果已经记录过该服务器的公钥数据,则客户端去对比两次的数据是否存在差异。并计算生成出自己的公钥私钥数据。

    5、客户端发送自己的公钥数据到server端。

    6、双向加解密。

      1、server端到客户端,在进行数据传送时,使用客户端的公钥进行加密;客户端收到后通过私钥解密数据。

      2、客户端到server端,在进行数据传送时,使用server端的公钥进行加密;server端收到后通过私钥解密数据。

  • 相关阅读:
    CoreText实现图文混排之点击事件
    iOS仿喜马拉雅FM做的毕业设计及总结(含新手福利源码)
    iOS---多线程实现方案一 (pthread、NSThread)
    iOS中navigationItem的titleView如何居中
    从 setNeedsLayout 说起
    精准化测试专业平台Paw:苹果APP应用代码质量的守护者
    Runtime实战之定制TabBarItem大小
    YYModel 源码历险记 代码结构
    10分钟搞定支付宝和微信支付 的 各种填坑
    如何写好一个UITableView
  • 原文地址:https://www.cnblogs.com/wujizhang/p/11652740.html
Copyright © 2020-2023  润新知