这种错误通常是因为SSH密钥不正确或未设置所致。可以通过以下步骤解决问题:
- 确认SSH密钥是否已设置并添加到目标主机的authorized_keys文件中。也可以在执行操作的用户的主目录中查找是否有.ssh目录。
- 如果使用密码进行身份验证,请确保已在Ansible主机和目标主机之间正确配置密码。
- 在Ansible主机上运行以下命令以确保身份验证设置正确:
ssh -i /path/to/ssh_key user@target_host
- 如果仍然无法连接,请尝试用-vv选项运行Ansible以获取更多详细信息,并验证Ansible主机是否具有执行所需操作的权限。例如:
ansible -vvv target_host -m shell -a 'whoami' -u user --private-key=/path/to/ssh_key
如果需要密码,请添加-k选项:
ansible -vvv target_host -m shell -a 'whoami' -u user -k --private-key=/path/to/ssh_key
- 最后,如果仍然出现问题,可以尝试禁用SSH主机密钥检查:
ansible-playbook playbook.yml --ssh-extra-args="-o StrictHostKeyChecking=no"