问题原因
OpenSSH为避免受到DNS Hijack之类的攻击,会将访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,即
Host key verification failed.
lost connection 错误。
针对这个问题,有以下解决方案:
一、在执行ssh、scp命令时,添加 -o StrictHostKeyChecking=no 选项(当连接的服务器的公钥在本地不存在,就会自动添加到文件(默认是known_hosts)。
-
ssh -o StrictHostKeyChecking=no root@$host
-
scp -o StrictHostKeyChecking=no filename username@ip:path
二、清空know_hosts里的内容(未验证)
参考:https://blog.csdn.net/philosopher3610/article/details/84429389