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端收到后通过私钥解密数据。

原文地址:https://www.cnblogs.com/wujizhang/p/11652740.html