Ansible:“无法通过ssh连接到主机”错误

时间:2016-05-24 22:41:44

标签: ssh ansible

我正试图第一次使用Ansible进行设置,以连接到Raspberry Pi。在official 'getting started'步骤之后,我制作了一个清单文件:

192.168.1.206

..但ping失败如下:

$ ansible all -m ping -vvv
No config file found; using defaults
<192.168.1.206> ESTABLISH SSH CONNECTION FOR USER: pi
<192.168.1.206> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=pi -o ConnectTimeout=10 -o ControlPath=/Users/username/.ansible/cp/ansible-ssh-%h-%p-%r 192.168.1.206 '/bin/sh -c '"'"'( umask 22 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1464128959.67-131325759126042 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1464128959.67-131325759126042 `" )'"'"''
192.168.1.206 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}

这与this question看起来相同,但添加密码/用户位对我没有任何影响,不需要ping,并且无论如何都不在官方示例中。在任何情况下,我都希望将Ansible配置为使用特定的公钥/私钥对(按照ssh -i ~/.ssh/keyfile方法..)

感激帮助。

哦,是的,Raspberry可以在该地址获得:

$ ping 192.168.1.206
PING 192.168.1.206 (192.168.1.206): 56 data bytes
64 bytes from 192.168.1.206: icmp_seq=0 ttl=64 time=83.822 ms

3 个答案:

答案 0 :(得分:0)

尽管它的名字可能暗示,Ansible ping模块不会进行ICMP ping。

它尝试连接到主机并确保安装了兼容的Python版本(如documentation中所述)。

  

ping - 尝试连接到主机,验证可用的python并在成功时返回pong。

如果您想使用特定的私钥,可以在广告资源文件中指定ansible_ssh_private_key_file

[all]
192.168.1.206 ansible_ssh_private_key_file=/home/example/.ssh/keyfile

答案 1 :(得分:0)

它对我有用。

10.23.4.5 ansible_ssh_pass ='password'ansible_user ='root'

答案 2 :(得分:0)

您还可以通过在调试模式下执行ssh进行故障排除并在运行时比较结果:

ssh -v pi@192.168.1.206

具有:

ansible all -m ping -vvvv