通过 ProxyCommand 使用 SSH 代理时的动态主机名

问题描述 投票:0回答:1

我正在尝试通过代理服务器配置 SSH 连接,以便

Host bridge-test
  HostName TARGETHOST
  ProxyCommand ssh -W BRIDGEHOST %h:%p

但是,我的问题是我不知道先验什么是

TARGETHOST
。该信息只能通过在
BRIDGEHOST
(静态)上执行命令来访问。有没有办法配置 SSH 以从代理服务器获取
TARGETHOST
作为变量?

ssh proxy
1个回答
0
投票

使用一点内联魔法就可以实现

Match originalhost bridge-test exec "ssh BRIDGEHOST 'cat host.txt' > /tmp/host.txt; true"
  hostname dummy
  ProxyCommand ssh BRIDGEHOST -W $(cat /tmp/host.txt):%p

我希望它可以简化为

HOST bridge-test
  hostname dummy
  ProxyCommand ssh BRIDGEHOST -W $(ssh BRIDGEHOST 'cat host.txt'):%p

但是这个变体失败了:

错误数据包长度 1231976033。
ssh_dispatch_run_fatal:连接到未知端口 65535:消息身份验证代码不正确

© www.soinside.com 2019 - 2024. All rights reserved.