zoukankan      html  css  js  c++  java
  • Open SSH原理

     OpenSSH(免费的 SSH 的实现)类似于 telnet 或rshssh 客户程序也可以用于登录到远程机器。所要求的只是该远程机器正在运行 sshd,即 ssh 服务器进程。但是,与 telnet 不同的是,ssh 协议非常安全。加密数据流,确保数据流的完整性,甚至安全可靠的进行认证它都使用了专门的算法。

     

    SSH原理

    1、服务器建立公钥
    每一次启动sshd服务时,该服务会主动去找/etc/ssh/ssh_host* 的文件。系统刚刚安装完成时,由于没有这些公钥,sshd会主动去计算出这些需要的公钥,同时也会计算出服务器自己需要的私钥

    [root@rhce7 ~]# cd /etc/ssh
    [root@rhce7 ssh]# ls -l
    total 268
    -rw-------. 1 root root     242153 Mar 20  2014 moduli
    -rw-r--r--. 1 root root       2123 Mar 20  2014 ssh_config
    -rw-------. 1 root root       4442 Mar 20  2014 sshd_config
    -rw-r-----. 1 root ssh_keys    227 Jun 28 05:37 ssh_host_ecdsa_key
    -rw-r--r--. 1 root root        162 Jun 28 05:37 ssh_host_ecdsa_key.pub
    -rw-r-----. 1 root ssh_keys   1675 Jun 28 05:37 ssh_host_rsa_key
    -rw-r--r--. 1 root root        382 Jun 28 05:37 ssh_host_rsa_key.pub

    2、客户端主动联机请求
    若客户端想要联机到ssh服务器,则需要使用适当的客户端程序来联机,比如ssh, putty等客户端程序连接

    3、服务器传送公钥给客户端
    接收到客户端的要求后,服务器便将第一个步骤取得的公钥传送给客户端使用(此时应是明码传送,反正公钥本来就是给大家使用的)

    4、客户端记录并比对服务器的公钥数据及随机计算自己的公私钥
    若客户端第一次连接到此服务器,则会将服务器的公钥记录到客户端的用户家目录内的 ~/.ssh/known_hosts。
    若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥,则开始计算客户端自己的公私钥

    5、回传客户端的公钥到服务器端
    用户将自己的公钥传送给服务器,此时:
    服务器:具有服务器的私钥与客户端的公钥
    客户端:具有服务器的公钥以及客户端自己的私钥

     6、开始双向加解密
    (1)服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密
    (2)客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密,这样就能保证通信安全

    参考:

    http://www.open-open.com/lib/view/open1422417444048.html

  • 相关阅读:
    第八周学习进度
    《梦断代码》阅读笔记01
    冲刺记录一
    NABCD简介
    第七周学习进度
    《编程珠玑》阅读笔记03
    第六周学习进度
    数据库数据定期同步实现
    数据库之间的数据同步
    数据同步——otter
  • 原文地址:https://www.cnblogs.com/abclife/p/4641771.html
Copyright © 2011-2022 走看看