zoukankan      html  css  js  c++  java
  • ssh跳过knownhost文件

    在平时工作中,有时候需要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 a host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    SHA256:a8fAxLioJ3P3YoM04dKmz/nc75axX6jtGaIvBNirKO4.
    Please contact your system administrator.
    Add correct host key in /root/.ssh/known_hosts to get rid of this message.
    Offending RSA key in /root/.ssh/known_hosts:1
    RSA host key for 192.168.80.7 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”,加上这两行,重启服务器。

    1    StrictHostKeyChecking no           # 不会问yes/no
    2    UserKnownHostsFile /dev/null       # 将文件定到空,每次不一样也没事

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


    参考文档:https://blog.csdn.net/yasaken/article/details/7348441

  • 相关阅读:
    TestCafe 快速上手(一)
    Github Page & Jekyll 搭建博客
    SQL注入学习笔记
    DVWA 渗透测试(SQL)平台搭建 XAMPP + Windows
    JavaScript小技巧
    react中引入css的方式有哪几种?区别?
    TypeScript 中接口的理解?应用场景?
    TypeScript 中枚举类型的理解?应用场景?
    Typescript 的数据类型有哪些?
    TypeScript 的理解?与 JavaScript 的区别?
  • 原文地址:https://www.cnblogs.com/-xuan/p/10732898.html
Copyright © 2011-2022 走看看