![为什么 Ansible 无法 ping 通我可以连接的实例?](https://linux22.com/image/217205/%E4%B8%BA%E4%BB%80%E4%B9%88%20Ansible%20%E6%97%A0%E6%B3%95%20ping%20%E9%80%9A%E6%88%91%E5%8F%AF%E4%BB%A5%E8%BF%9E%E6%8E%A5%E7%9A%84%E5%AE%9E%E4%BE%8B%EF%BC%9F.png)
我可以连接我的 AWS EC2 实例
ssh -i "pizdform.pem" [email protected]
Last login: Tue Feb 21 12:36:50 2023 from ...
我尝试了 Ansible ping
cat test-project/hosts.ini
[web]
52.206.23.6
ansible -i test-project/hosts.ini web -m ping -u ec2-user
ping 失败
52.206.23.6 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: [email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).",
"unreachable": true
}
为什么?
答案1
错误消息显示“权限被拒绝”。这告诉我,您没有使用正确的 SSH 身份文件来连接到您的目标(该pizdform.pem
文件作为参数传递给-i
裸 SSH 命令中的选项)。使用--private-key PRIVATE_KEY_FILE
选项来ansible
使用 PEM 文件,您应该能够正常连接。您还可以使用ssh-agent
将标识存储在内存中,从而避免使用--private-key
选项ansible
。
答案2
我开始学习ansible,最近遇到了这个问题。找到了附加ansible_user=username
在清单文件中的主机名后面的解决方案。之后我收到了 SUCCESS 输出,希望这对您有用。