You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行Ansible Playbook时Docker主机不可达(SSH连接未知错误)求助

解决Ansible连接目标主机172.17.0.2的UNREACHABLE错误

你遇到的这个SSH连接错误是Ansible最常见的问题之一,咱们一步步来排查解决:

首先先明确你碰到的错误信息:

TASK [setup] *******************************************************************
fatal: [172.17.0.2]: UNREACHABLE! => {"changed": false, "msg": "ERROR! 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}

1. 先排查基础网络与SSH端口连通性

先在控制节点上手动测试最基础的连通性:

  • 执行 ping 172.17.0.2,看是否能收到响应。如果ping不通,先解决网络层面的问题(比如容器网络配置、路由规则、底层防火墙拦截)。
  • 如果ping通了,测试SSH端口是否开放:执行 nc -zv 172.17.0.2 22 或者 telnet 172.17.0.2 22,如果显示连接失败,说明目标主机的22端口没开放,或者被防火墙拦截了。

2. 检查SSH认证配置

Ansible默认使用密钥认证,确保你的控制节点SSH公钥已经添加到目标主机的~/.ssh/authorized_keys中:

  • 可以手动执行 ssh-copy-id <目标主机用户名>@172.17.0.2 来复制公钥,之后尝试手动 ssh <目标主机用户名>@172.17.0.2,如果能成功登录,说明认证环节没问题。
  • 如果用密码认证,需要在playbook里添加ansible_ssh_pass变量,或者在inventory文件中配置,也可以在运行playbook时加上--ask-pass参数手动输入密码。

3. 确认目标主机的SSH服务状态

如果能通过其他方式登录到目标主机(比如控制台),检查以下内容:

  • SSH服务是否在运行:执行 systemctl status sshd(Systemd系统)或者 service ssh status(SysVinit系统),如果没运行,启动它:systemctl start sshd。
  • 防火墙是否放通22端口:Ubuntu系统用 ufw status 查看,CentOS用 firewall-cmd --list-ports;如果没开放,添加规则:ufw allow 22 或者 firewall-cmd --add-port=22/tcp --permanent && firewall-cmd --reload。

4. 检查Ansible的Inventory与配置

  • 确认你的inventory文件里的主机条目是否正确,比如目标主机SSH端口不是默认22、或者使用特定用户名时,需要明确指定:
    172.17.0.2 ansible_user=your_username ansible_port=22 ansible_ssh_private_key_file=/path/to/your/private/key
    
  • 检查ansible.cfg中的配置,比如ssh_args是否有错误的参数设置,导致SSH连接异常。

5. 用详细调试信息定位问题

按照错误提示,运行带-vvvv参数的命令,获取SSH连接的完整调试日志:

ansible-playbook install_docker.yml -vvvv

这会显示SSH连接的每一步细节,比如是主机密钥验证失败(会提示Host key verification failed)、密钥权限不正确,还是用户名错误。如果是主机密钥问题,手动执行一次ssh 172.17.0.2,接受主机密钥即可。

内容的提问来源于stack exchange,提问作者Oz Giat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:32:14