zoukankan      html  css  js  c++  java
  • ssh下known_hosts的作用

    原文地址:http://blog.csdn.net/yasaken/article/details/7348441 

    在平时工作中,有时候需要SSH登陆到别的Linux主机上去,但有时候SSH登陆会被禁止,并弹出如下类似提示: 

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that the RSA host key has just been changed.The fingerprint for the RSA key sent by the remote host is36:68:a6:e6:43:34:6b:82:d7:f4:df:1f:c2:e7:37:cc.Please contact your system administrator.Add correct host key in /u/xlian008/.ssh/known_hosts to get rid of this message.Offending key in /u/xlian008/.ssh/known_hosts:2RSA host key for 135.1.35.130 has changed and you have requested strict checking.Host key verification failed. 


    比较奇怪,于是研究了一下。 
    ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。我在上面列出的情况,就是这种情况。 

    原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的~/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。 

    有以下两个解决方案: 
    1. 手动删除修改known_hsots里面的内容; 
    2. 修改配置文件“~/.ssh/config”,加上这两行,重启服务器。 
       StrictHostKeyChecking no 
       UserKnownHostsFile /dev/null 

    优缺点: 
    1. 需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高; 
    2. SSH登陆时会忽略known_hsots的访问,但是安全性低;

  • 相关阅读:
    WSGI-mini-web框架服务器
    pymsql链接数据库报错2003的解决过程记录
    官方案例--Survival Shoot(一)
    Python-Day5修改haproxy配置文件
    Python-Day4实现简单的shell sed替换功能
    Python-列表嵌套字典-名片管理系统(适合刚学习完字典和列表的同学练手)
    Python-列表的运用-名字管理系统
    Vi 编写一个剪刀石头布游戏
    Python-Day3 购物系统
    Python-Day2三级菜单
  • 原文地址:https://www.cnblogs.com/liuyanerfly/p/9668426.html
Copyright © 2011-2022 走看看