原文地址: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的访问,但是安全性低;

最新文章

  1. java-JDBC从数据库中读取数据并进行日期民族男女的转换
  2. .NET 4.5+项目迁移.NET Core的问题记录
  3. Ubuntu 14.04中gedit打开文件出现中文乱码问题
  4. 修复ORACLETNS-12545 因目标主机或对象不存在错误
  5. mysql 大数据量求平均值
  6. python学习笔记20(字符串格式化)
  7. 【Java】ArrayList 的 toArray() 方法抛出 ClassCastException 异常
  8. 老李谈JVM内存模型
  9. 【Java】0X003 面向对象
  10. Why Helm? - 每天5分钟玩转 Docker 容器技术(160)
  11. 网络-04-端口号-linux端口详解大全--TCP注册端口号大全
  12. PHPUnit实践一(初识)
  13. 电信运营商 IT 系统介绍
  14. Linux 安装mysql,mariadb,mysql主从同步
  15. CentOS 7的安装
  16. 【转载】Multiboot规范
  17. struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
  18. [ASP.NET]Net Framework环境问题的一种修复方案
  19. python操作json数据格式--基础
  20. java web 程序---刷新页面次数

热门文章

  1. JAVA-Thread 线程的几种状态
  2. PHP学习之工厂模式
  3. java.util.HashTable (JDK1.8)
  4. 编程语言中的字面量在Objective-C中的举例
  5. java使用jconsole查看java程序运行(jmx原理)
  6. 08ListView动态列表组件 以及循环动态数据
  7. 原生js实现深复制
  8. python md5验签
  9. 同一个电脑配置两个github账号
  10. swift 第二课 基础知识-2