问答详情
源自:2-4 Python自动化运维——Ansible使用教程1

ping报错

$  ansible all -m ping

192.168.1.14 | UNREACHABLE! => {

    "changed": false,

    "msg": "Failed to connect to the host via ssh: test1,ansible_ssh_pass=test1@192.168.1.14: Permission denied (publickey,password).",

    "unreachable": true

}

##

提问者:小黑狗Cathy 2022-04-26 14:56

个回答

  • 小黑狗Cathy
    2022-04-26 16:19:41

    问题搞定了。

    做这一步的时候注意配置受控主机的用户。

    2.添加本机的public SSH key到目标机器(受控机器)的authorized_keys


    第一种情况

    不配置受控主机的连接用户,仅配置受控主机IP。主控机器会使用主控机器的当前用户连接到受控机器。如果受控机器没有此用户则出现报错。

    第二种情况

    配置受控主机的连接用户。

    vim /etc/ansible/hosts

    user@192.168.1.10

    or

    192.168.1.10 ansible_ssh_user="user"

    这时候漏洞出现在ssh-copy-id上,如果ssh-copy-id 未指定用户,或者指定用户与上述配置的用户不一致,也会导致报错。


    正确配置

    1.编辑/etc/ansible/hosts文件,加入内容

    192.168.1.10 ansible_ssh_user="user"

    2.ssh-copy-id指定用户

    ssh-copy-id user@192.168.1.10