我正在尝试通过代理服务器配置 SSH 连接,以便
Host bridge-test
HostName TARGETHOST
ProxyCommand ssh -W BRIDGEHOST %h:%p
但是,我的问题是我不知道先验什么是
TARGETHOST
。该信息只能通过在 BRIDGEHOST
(静态)上执行命令来访问。有没有办法配置 SSH 以从代理服务器获取 TARGETHOST
作为变量?
使用一点内联魔法就可以实现
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:消息身份验证代码不正确