问题原因
OpenSSH为避免受到DNS Hijack之类的攻击,会将访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,即
Host key verification failed. lost connection 错误。
针对这个问题,有以下解决方案:
一、在执行ssh、scp命令时,添加 -o StrictHostKeyChecking=no 选项
ssh -o StrictHostKeyChecking=no root@$host
scp -o StrictHostKeyChecking=no root@$host:~/
二、清空know_hosts里的内容