在gcp实例上使用Ansible连接到另一个实例时出错



我有一个叫master instance node的服务器和一个叫slave-instance-node-1的服务器。在我安装了Ansible的主实例节点中,我修改了/etc/Ansible/hosts文件,并添加了以下

[webservers]
slave-instance-node-1

然后我尝试以下命令

ansible webservers -a "w " -u USERNAME,但我得到以下错误:

slave-instance-node-1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@rn@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @rn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@rnThe ECDSA host key for slave-instance-node-1 has changed,rnand the key for the corresponding IP address XX.XXX.X.XXrnis unknown. This could either mean thatrnDNS SPOOFING is happening or the IP address for the hostrnand its host key have changed at the same time.rn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@rn@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @rn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@rnIT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!rnSomeone could be eavesdropping on you right now (man-in-the-middle attack)!rnIt is also possible that a host key has just been changed.rnThe fingerprint for the ECDSA key sent by the remote host isnSHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.rnPlease contact your system administrator.rnAdd correct host key in /home/USERNAME/.ssh/known_hosts to get rid of this message.rnOffending ECDSA key in /home/USERNAME/.ssh/known_hosts:1rn  remove with:rn  ssh-keygen -f "/home/USERNAME/.ssh/known_hosts" -R "slave-instance-node-1"rnECDSA host key for slave-instance-node-1 has changed and you have requested strict checking.rnHost key verification failed.",
"unreachable": true
}

我认为已知的主机文件会在GCP中自动更新。这个错误意味着什么?我该如何修复它?

除了其他注释程序外,您还可以检查实例使用的IP。如果您的DNS是为外部IP配置的,您可能更喜欢静态外部IP,以避免实例重新启动后出现此错误。外部收件人是短暂的,问题不仅可能在重新部署后发生,也可能在重新启动后发生。你可能对这份文件感兴趣https://cloud.google.com/compute/docs/ip-addresses#externaladdresses

多亏了我问题中的评论,我才找到了答案。首先,我必须使用命令remove with: ssh-keygen -f "/home/USERNAME/.ssh/known_hosts" -R "slave-instance-node-1".删除已知的主机,还必须设置export ANSIBLE_HOST_KEY_CHECKING=false

然后,我必须在服务器名称/ipansible_user=USERNAME旁边的/etc/ansible/hosts文件中添加以下行。最后,我不得不在/etc/ansible/assible.cfg文件private_key_file = /path/to/file中添加以下行

相关内容

最新更新