10.1.1.96
是我的 Ansible 主节点。 10.1.1.77
是我的奴隶。我可以通过使用 成功地从主服务器 ssh ssh ubuntu@10.1.1.77 .
但是当我从 master 执行 ansible ping 时,我收到以下消息
etc/ansible/hosts 文件:
[servers]
server1 ansible_ssh_host=10.1.1.77
使用的 Ping 命令:sudo ansible -m ping server1 -u ubuntu
结果: server1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ubuntu@10.1.1.77: Permission denied (publickey,password).",
"unreachable": true
为什么会这样?我哪里错了?
最佳答案
因此,当您使用公钥对远程服务器进行身份验证时,您的 SSH 连接会失败。我猜您正在使用密码登录远程服务器。
请注意,您也可以在 list 文件中设置远程用户,这样您在调用 ansible-playbook
时就不必指定它。 :
[all:vars]
ansible_user=ubuntu
所以对你来说,有两种前进的方式:设置 SSH key
使用以下命令将您的公钥从本地计算机复制到远程计算机,以便您无需密码即可登录:
ssh-copy-id ubuntu@10.1.1.77
然后,您应该能够在不指定密码和使用公钥的情况下登录。使用 ansible_ssh_pass
将您的用户的密码添加到您的 list 文件中,如下所示:
[all:vars]
ansible_user=ubuntu
ansible_ssh_pass=mypassword
然后,此密码将用于 list 文件中的所有主机。
关于ubuntu - Ansible ping 无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62569354/