zoukankan      html  css  js  c++  java
  • 两台Linux机器之间配置信任关系(以及如何解除)

    假设如下场景:实现主机A免密码登录到主机B,主要步骤如下: 
        1)在主机A中利用"ssh-keygen -t rsa" 产生相应的私钥和公钥(id_rsa和id_rsa.pub). 
        2)在主机A中添加自己的私钥:ssh-add  id_rsa 
        注:很多介绍中都少了第二步,所以经常出现测试时不通过的情形。 
               ssh-add id_rsa                 
               # 如果提示 could not open a connection to your authentication agent 
               终端做如下操作: 
               ssh-agent bash 
               ssh-add id_rsa # 输入密码 
        3)将主机A中的公钥id_rsa.pub拷贝到主机B的.ssh目录下,并cat id_rsa.pub >>authorized_keys 中。 
        4)将主机B中的authorized_keys改为只有当前用户有读写权限:chmod 600 authorized_keys 
        
        这样主机A就可以免登录到主机B了。

      想让A,B机无密码互登录,那B机以上面同样的方式配置即可。

     
    但是如何解除两台机器之间的信任关系呢?
    其实很简单,把密钥删掉是不行的,可以在主机A上如此操作
    (1)cd ~/.ssh
     (2) vi  known_hosts
    (3)把known_hosts中关于主机B的那行删掉就行了
     

    • 原理 
      • 1.在A上生成公钥私钥。
      • 2.将公钥拷贝给server B
      • 3.Server A向Server B发送一个连接请求。
      • 4.Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密,发送给Server A。
      • 5.Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。Server B进行和生成的对比,如果一致,则允许免登录。

    总之:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。

  • 相关阅读:
    深入浅出Redis(三)高级特性:管道
    CxImage的编译及简单使用举例
    [Zlib]_[0基础]_[使用zlib库压缩文件]
    java 实现打印当前月份的日历
    hdu 5087 Revenge of LIS II ( LIS ,第二长子序列)
    spring理解一
    poj 3181 Dollar Dayz (整数划分问题---递归+DP)
    android键盘事件
    Linux编程环境介绍(2) -- shell(Bash) 介绍
    iphone开发中数据持久化之——嵌入式SQLite(三)
  • 原文地址:https://www.cnblogs.com/snailon/p/13396860.html
Copyright © 2011-2022 走看看