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