Ansible ping失败 – 主机无法访问

我刚开始学习Ansible的基础知识,并查找了为什么我得到上述错误,但无法弄清楚如何整理出来。 这是一个痕迹:

Me-Air:ansible me$ ansible all -m ping -vvv Using /private/etc/ansible/ansible.cfg as config file <Public_IP> ESTABLISH SSH CONNECTION FOR USER: [my_user_name_on_EC2_instance] <Public_IP> 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 ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/ansible-ssh-%h-%p-%r -tt [Public_IP] '/bin/sh -c '"'"'( umask 22 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-... `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-... `" )'"'"'' Public_IP | UNREACHABLE! => { "changed": false, "msg": "SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue", "unreachable": true } ------ 

我曾问过:

 The authenticity of host 'public IP' can't be established. RSA key fingerprint is ...[key]. Are you sure you want to continue connecting (yes/no)? yes 

这是我在主机文件中的:

 [name_of_the_EC2_instance] Public_IP 

并在configuration文件中:

 [defaults] host_key_checking = False 

我错过了那里的东西。 有任何想法吗?

提前致谢。

正如在评论中所探讨的那样,没有指定私钥文件。 默认文件( .ssh/id_dsa.ssh/id_dsa )被尝试,但未find。

私钥文件可以通过几种方式添加:

(1)使用ssh代理: ssh-add ~/.ssh/my-key.pem

(2)默认为ansible.cfg

 [defaults] private_key_file=~/.ssh/my-key.pem 

(3)每个主机在库存中指定:

 my-host-ip ansible_ssh_private_key_file=~/.ssh/my-key.pem