Amazon web services Ansible。无法从Cygwin ping EC2实例

Amazon web services Ansible。无法从Cygwin ping EC2实例,amazon-web-services,ssh,amazon-ec2,ansible,Amazon Web Services,Ssh,Amazon Ec2,Ansible,试图从Cygwin对AWS EC2运行非常基本的Ansible ping操作,但没有成功 具备以下配置: ansible.cfg: [defaults] hostfile = hosts host_key_checking = False 主持人: [local] localhost [servers] server-1 ansible_ssh_host=ec2-54-175-139-180.compute-1.amazonaws.com ansible_ssh_user=ec2-user

试图从Cygwin对AWS EC2运行非常基本的Ansible ping操作,但没有成功

具备以下配置:

ansible.cfg:

[defaults]
hostfile = hosts
host_key_checking = False
主持人:

[local]
localhost

[servers]
server-1 ansible_ssh_host=ec2-54-175-139-180.compute-1.amazonaws.com ansible_ssh_user=ec2-user ansible_ssh_private_key_file=ansible.pem
所有这些文件+PEM文件都位于同一文件夹中。 我能够使用PEM文件通过SSH连接到EC2。我也能打电话。Ping工作正常。但以下命令经常失败:

ansible server-1-m ping-vvv

显示以下错误消息:

   <ec2-54-175-139-180.compute-1.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: ec2-user
<ec2-54-175-139-180.compute-1.amazonaws.com> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o 'IdentityFile="ansible.pem"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ec2-user -o ConnectTimeout=10 -o 'ControlPath=/home/UserHome/.ansible/cp/ansible-ssh-%h-%p-%r' ec2-54-175-139-180.compute-1.amazonaws.com '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1469264080.61-242019267058306 `" && echo ansible-tmp-1469264080.61-242019267058306="` echo $HOME/.ansible/tmp/ansible-tmp-1469264080.61-242019267058306 `" ) && sleep 0'"'"''
server-1 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
为用户建立SSH连接:ec2用户
SSH:EXEC SSH-C-q-o ControlMaster=auto-o ControlPersist=60s-o StrictHostKeyChecking=no-o'IdentityFile=“ansible.pem”'-o KbdInteractiveAuthentication=no-o PreferredAuthentications=gssapi带麦克风、gssapi-keyex、基于主机、,publickey-o PasswordAuthentication=no-o User=ec2 User-o ConnectTimeout=10-o'ControlPath=/home/UserHome/.ansible/cp/ansible ssh-%h-%p-%r'ec2-54-175-139-180.compute-1.amazonaws.com'/bin/sh-c''”(umask 77和&mkdir-p“`echo$home/.ansible/tmp/ansible-tmp-1469264080.61-242019267058306`&&echo-tmp-1469264080.61-2420167058306=“`echo$HOME/.ansible/tmp/ansible-tmp-1469264080.61-242019267058306`&&sleep 0`”
服务器1 |无法访问!=>{
“更改”:错误,
“msg”:“未能通过ssh连接到主机。”,
“遥不可及”:真实
}
有什么问题吗?我看到了关于同一问题的多个问题,但不幸的是没有解决方案…我使用的是Ansible的2.1版本。
非常感谢您的帮助!

默认情况下,Ansible 1.3及更高版本将在可能的情况下尝试使用本机OpenSSH进行远程通信。这将启用ControlPersist(性能功能)、Kerberos和~/.ssh/config中的选项,例如跳转主机设置。但是,当使用Enterprise Linux 6操作系统作为控制计算机时(红帽企业Linux和CentOS等衍生产品)在这些操作系统中,AnEnter将使用一种称为“PARAMIKO”的OpenSSH的高质量Python实现。如果您希望使用Kerber-Ssh和更多的特性,请考虑使用FEDORA、OS X或Ubuntu作为您的控制机,直到新版本的OPENKO打开。SSH可用于您的平台–或在Ansible中使用“加速模式”

在这里查看加速模式的文档

好的,我找到了解决方案

将此添加到my ansible.cfg解决了以下问题:

[ssh_连接]


ssh_args=-o ControlMaster=no

您从何处运行Ansible脚本?您是什么意思?从Cygwin:)运行它,那么您能够从Cygwin终端用ssh连接到实例吗?是的。这个命令非常有效:ssh-i pemfile.pem ec2-user@ec2-54-175-139-180.compute-1.amazonaws.cominansible您使用的是“ansible.pem”在你的SSH中,你使用的是“pemfile.pem”,这是错误的还是正确的?文档说:“为了使用加速模式,只需在你的剧本中添加加速:true:”但我甚至没有使用剧本。Ansible使用的是哪个版本的OpenSSH?Ansible的版本是什么