ansible推送文件到目标主机时报错 UNREACHABLE! | Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password解决办法
问题现象:
[root@lin lin]# ansible all -m copy -a 'src=/etc/ansible/lin/test.txt dest=/home/'
192.168.12.203 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: root@192.168.12.203: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).",
"unreachable": true
解决方法1:这里可以看出来时公钥出了问题,我们可以在ansible配置文件的hosts文件中添加目的主机的用户名和密码,我这里ansible的配置文件路径为 /etc/ansible/hosts ,在这个文件中按以下的格式添加对应的服务器用户名密码即可。
[servers]
192.168.12.201 ansible_ssh_user='用户名' ansible_ssh_pass='密码'
192.168.12.202 ansible_ssh_user='用户名' ansible_ssh_pass='密码'
192.168.12.203 ansible_ssh_user='用户名' ansible_ssh_pass='密码'
解决方法2:可以单独生成公钥
ssh-keygen -f /root/.ssh/id_rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@目的主机IP