zoukankan      html  css  js  c++  java
  • ssh 免密码登录配置,及其原理

      1、废话不多说,先上图

      2、 典型的RSA非对称加密

        RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。 

        它的原理较为简单,我们假设有消息发送方A和消息接收方B,通过下面的几个步骤,我们就可以完成消息的加密传递:

    1. 消息发送方A在本地构建密钥对,公钥和私钥;

    2. 消息发送方A将产生的公钥发送给消息接收方B;

    3. B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;

    4. 反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。

        由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。

        如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行解密,反之,B通过A的公钥进行加密,A接收到消息后通过A的私钥进行解密。

        当然,这种方式可能存在数据传递被模拟的隐患,我们可以通过数字签名等技术进行安全性的进一步提升。由于存在多次的非对称加解密,这种方式带来的效率问题也更加严重。   

    3、DH密钥交换算法

        SSH的原理,是基于RSA非对称加密,RSA是基于大数的因式分解数学难题,下面要提到的DH密钥交换算法则是基于有限域上的离散对数难题。

        DH算法是一种密钥协商算法,只用于密钥的分配,不用于消息的加解密。它提供了一种安全的交换密钥的方式,通过交换的密钥进行数据的加解密。就像SSH原理中,口令的交换,不过DH算法更安全。

        我们举个例子来进行说明,假设有A、B两方,A作为发送者,B作为接收者。通过下面的几个步骤就可以构建出一个只属于双方的密钥口令,如下:

    1. 首先A、B双方,在通信前构建专属于自己的密钥对,假设分别是公钥A,私钥A,公钥B,私钥B;

    2. A将自己的公钥A暴露给B,B通过私钥B公钥A经过一定的运算产生出本地的密钥B;

    3. 同样,B将自己的公钥B暴露给A,A通过私钥A公钥B经过一定的运算产生出本地的密钥A;

    4. 最后,这个算法有意思的一点就是,密钥A密钥B是一致的,这样A、B双方就拥有了一个属于双方的“秘密”口令;

        DH算法的产生是,对称加密向非对称加密的过度,为后续非对称加密的产生和发展奠定了基础。

    4、生成公钥私钥

      ssh-keygen -t rsa   :rsa为默认加密算法 

      运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。  

      命令完成后,在~/.ssh/目录下会生成两个新文件:id_rsa.pub和id_rsa。前者存放你自己的公钥,后者存放你自己的私钥。

    5、将id_rsa.pub传输到登录主机  

      scp id_rsa.pub 用户名@Ip地址:路径

      输入密码即可

    6、在B主机.ssh目录找到 authorized_keys 文件

      文件权限必须为一下:

      将公钥内容追加到 authorized_keys文件中:cat id_rsa.pub  >> authorized_keys 

    7、测试是否可以免密登录

      ssh B主机

                              零下15度写的博客,冻死爹滴了。。。。。。。。

  • 相关阅读:
    python爬虫 js逆向之取巧秒解webpack打包的加密参数
    程序员半夜泡奶粉,睡不着了
    擴展Membership建立中小型WEB權限框架(一)
    Gridview小技巧保存選擇狀態
    sql server 2005行列轉換
    一个简单的WEB流程图组件[demo]
    web效率14條規則(轉)
    常用javascript 表達式驗證[綜合轉載]
    SOA、反射+緩存
    数据表的设计原则(轉載)
  • 原文地址:https://www.cnblogs.com/xiaoyu1994/p/10128979.html
Copyright © 2011-2022 走看看