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

使用带ProxyCommand的SSH代理时动态获取主机名的方法

动态获取目标主机的SSH代理配置方案

你可以通过SSH配置中的命令替换功能,直接从BRIDGEHOST上执行命令获取TARGETHOST的值,无需预先硬编码。以下是两种可行的配置方式:

方式一:在ProxyCommand中直接处理

这种方式会先连接到BRIDGEHOST,在代理主机上执行获取目标地址的命令,再建立转发连接:

Host bridge-test
  ProxyCommand ssh BRIDGEHOST 'TARGET=$(your-command-to-get-targethost); ssh -W "$TARGET:%p"'

将your-command-to-get-targethost替换为你在BRIDGEHOST上用来获取目标主机地址的实际命令(比如cat /path/to/target-host.txt或自定义脚本)。

方式二:动态赋值HostName

这种方式先本地执行命令获取目标主机地址,再通过ProxyCommand转发到该地址:

Host bridge-test
  HostName $(ssh BRIDGEHOST your-command-to-get-targethost)
  ProxyCommand ssh -W %h:%p BRIDGEHOST

注意事项

  • 确保本地可以无密码登录BRIDGEHOST(比如配置SSH密钥对),否则每次执行都会触发密码验证,影响使用体验。
  • 确认BRIDGEHOST上的获取命令能输出纯净的目标主机地址,不要包含多余的换行、空格或其他字符,否则会导致SSH连接失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:51:04