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

Ansible使用跳板机时报banner交换连接超时该如何正确配置?

错误根因分析

Connection timed out during banner exchange报错本质是SSH代理跳转链路不通,你当前配置的ansible_ssh_common_args参数不符合ProxyCommand语法规范:多余添加了ssh前缀,且未配置流量转发到目标主机的逻辑。

正确配置方案

Ansible配置跳板机有两种常用写法,可根据你的跳板机环境选择:

写法1:使用SSH自带-W参数(无需跳板机安装netcat,通用性更高)

---
all:
  hosts:
    tencent:
      ansible_user: "ubuntu"
      ansible_host: "106.55.XXX.XXX"
      ansible_ssh_private_key_file: "key.pem"
      ansible_ssh_common_args: '-o ProxyCommand="ssh -i bastion.key.pem ubuntu@102.106.XXX.XXX -W %h:%p"'

参数说明:%h会自动替换为你配置的目标主机IP(ansible_host的值),%p自动替换为SSH默认端口22,若目标SSH端口为自定义端口可手动替换对应值。

写法2:使用nc命令(跳板机已安装netcat时可用)

---
all:
  hosts:
    tencent:
      ansible_user: "ubuntu"
      ansible_host: "106.55.XXX.XXX"
      ansible_ssh_private_key_file: "key.pem"
      ansible_ssh_common_args: '-o ProxyCommand="ssh -i bastion.key.pem ubuntu@102.106.XXX.XXX nc %h %p"'
前置验证步骤(必做,可快速定位链路问题)
  • 验证本地到跳板机的连通性:本地执行ssh -i bastion.key.pem ubuntu@102.106.XXX.XXX,确认可以正常登录跳板机
  • 验证跳板机到目标主机的连通性:登录跳板机后执行ssh -i key.pem ubuntu@106.55.XXX.XXX,确认可以正常登录目标主机
  • 验证本地到目标主机的整条代理链路:本地执行下方命令,确认可以直接通过跳板机登录目标主机后,再执行Ansible命令即可
ssh -i key.pem ubuntu@106.55.XXX.XXX -o ProxyCommand="ssh -i bastion.key.pem ubuntu@102.106.XXX.XXX -W %h:%p"

特殊场景提示:若跳板机或目标主机的SSH端口为非默认22,需要在对应SSH命令中添加-p 自定义端口参数,比如跳板机SSH端口为2222时,ProxyCommand内跳板机部分改为ssh -p 2222 -i bastion.key.pem ubuntu@102.106.XXX.XXX -W %h:%p即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:24:00