ssh 忽略 know_host 的方法

场景

现在有一个arm 的板卡,ssh 又旧 又残 ,不能用 公钥免密登录 ,所以使用 了 sshpass

但是 arm 的板卡 一重启 ,他的 认证 就变了 ,导致 我们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.

这种错 ,然后 sshpass 命令 一旦出错, 就不能往后面走了 ,自动化到这就断掉了

一种方法 是 手动 将 这个ip 的 know_hosts 删除掉

ssh-keygen -R 172.18.175.246 ,但是这个不方便 ,每次连接前都要执行这个命令

解决方法就 是 忽略 know_hosts

命令如下

ssh root@172.18.175.246 -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile /dev/null"

如果用 sshpass 就是这样

sshpass -v -p root ssh root@172.18.175.246 -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile /dev/null"

如果嫌每次 ssh 都要输入 -o 这么多参数

也可以 在全局 配置

  1.手动删除修改known_hsots里面的内容;
  2.修改配置文件“~/.ssh/config”,加上这两行,重启服务器。

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

posted @ 2022-11-09 16:35  ifnk  阅读(1385)  评论(0编辑  收藏  举报