工作中总是测试不同的路由设备, 路由器的ip都是 192.168.111.1 ,ssh登录的时候总是出现这个错误。

macos上,错误如下

spawn ssh -p 22 root@192.168.111.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:nuD3aLw2AvSCH+WydHTUdNGKf65mnPaLbUasnjsEeaM.
Please contact your system administrator.
Add correct host key in /Users/liuzhizhi/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/liuzhizhi/.ssh/known_hosts:73
RSA host key for 192.168.111.1 has changed and you have requested strict checking.
Host key verification failed.
spawn_id: spawn id exp7 not open
    while executing
"interact"
    (file "./auto_login.exp" line 24)

我这里产生错误的原因就是 同一个ip登录不同的机器,不同机器的公钥不同,因为openssh客户端的安全策略然后报错了。

解决方法

第一个方式就是按照提示删除 /Users/liuzhizhi/.ssh/known_hosts文件的73行,然后就能登录了,下次在登录别的机器还需要删除这个ip对应的信息。

第二个方式 是更改ssh的配置 在 ~/.ssh/config 中添加如下配置

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

这样就不会在去检测公钥了(但是增加了安全风险),因为是自己的工作机器,为了方面,我用了这个方式。

参考文章

用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。

SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。简单所下它的三种配置值:

1. StrictHostKeyChecking=no

最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。

2. StrictHostKeyChecking=ask #默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。

3. StrictHostKeyChecking=yes #最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。

最新文章

  1. 兼容各浏览器的js判断上传文件大小
  2. Android 自定义View 总结
  3. 山东省2016acm省赛
  4. Python爬虫实战(4):豆瓣小组话题数据采集—动态网页
  5. 如何在Sublime Text中添加代码片段
  6. 使用git克隆指定分支的代码
  7. JAVA设计模式---模板方法
  8. 五子棋的斜对角方向上的规则 -- java编程(简单粗暴版)
  9. KVM之七:KVM克隆
  10. [CTSC 1999]拯救大兵瑞恩&[网络流24题]孤岛营救问题
  11. 《前端之路》之四 JavaScript 的闭包、作用域、作用域链
  12. el-popover 的显示或隐藏,要在拿到真实dom之后再做控制
  13. python 的基础 学习 第八天数据类型的补充 ,集合和深浅copy
  14. BizTalk Map 累积连接字符串
  15. iis7 部署 mvc4项目提示404错误
  16. Liferay7 BPM门户开发之22: Liferay7模型监听器(Model Listeners)
  17. BZOJ5306 HAOI2018染色(容斥原理+NTT)
  18. 自定义UITabbarcontrollerview
  19. mamcached+magent构建memcached集群
  20. 一次ajax调用,发送了两次请求(一次为请求方法为option,一次为正常请求)

热门文章

  1. hdu 5398 动态树LCT
  2. Codeforces Round #438 D. Huge Strings
  3. 例10-5 uva12716
  4. solr6.6初探之配置篇
  5. typedef的基本用法
  6. String 类
  7. Day 2 Python数值计算
  8. ORACLE设置自启动记录
  9. Web网页树形列表中实现选中父节点则子节点全选和不选中父则子全不选
  10. Promise--优雅的异步回调解决方案