zoukankan      html  css  js  c++  java
  • SSH数据交互过程【转】

    最近发现一篇介绍SSH数据交互过程的文章,描述得很清楚,转载在这里。

    (1)SSH启动时,会主动找/etc/ssh/ssh_host*文档,系统刚安装好时是没有这些公钥密钥的,因此,SSH会计算这些公钥,同时也计算出自己需要的私玥文档

    (2)当客户机请求连接到SSH服务器,这需要相应的软件,Putty(免费)、SecureCRT和Xshell 4,最好不要下载中文版,有后门。

    (3)服务器接到请求后,传送通过第一步计算得到的公钥给客户端(这里可能是明码传送,公钥本来就是公开的)

    (4)a.若客户端第一次连接服务器,则会将服务器公钥数据记录。    b.若是已经记录过该服务器的公钥数据,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥数据, 则开始计算客户端自己的公私钥数据

    (5)用户将自己的公钥传送给服务器。此时服务器:『具有服务器的私钥与客户端的公钥』,客户端则是: 『具有服务器的公钥以及客户端自己的私钥』,你会看到,在此次联机的服务器与客户端的密钥系统 (公钥+私钥) 并不一样,所以才称为非对称式密钥系统喔。

    (6)a.服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密;      b.客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密。

    SSH联机过程,前5步的目的要让服务器和客户端各自拥有自己的公私玥和对方的公钥,第六步则是实现,服务器拿客户端的公钥加密数据传给客户端,只有这个客户端的私玥才能解密,其它任何人截获其数据都会因为没有对应的私玥而无法打开(因为私玥和公钥是成对的!),反过来,客户端传数据给服务器也是一样。

     

    原文地址:http://isway.cn/?p=64

  • 相关阅读:
    利用自定义 ORM 下使用 flask-login 做登录校验使用笔记
    element-ui + vue + node.js 与 服务器 Python 应用的跨域问题
    js显示对象所有属性和方法的函数
    zookeeper 简单小节
    安装Python到Linux(Pyenv)
    安装Sonarqube到CentOS(YUM)
    安装PostgreSQL到CentOS(YUM)
    安装vsFTP到CentOS(YUM)
    安装Zabbix到Ubuntu(APT)
    安装Zabbix到CentOS(YUM)
  • 原文地址:https://www.cnblogs.com/eastson/p/2573432.html
Copyright © 2011-2022 走看看