【发布时间】:2022-01-07 22:56:16
【问题描述】:
当我在某个网络上(子网是 10.10.11.x)时,我需要跳过中间主机才能到达我的目的地,因为我无法更改目标端口并且我可以退出的端口有限受限网络。我成功使用了如下的 ssh 配置:
Host web-direct web
HostName web.example.com
Port 1111
Host web-via-jump jweb
HostName web.example.com
Port 1111
ForwardAgent yes
ProxyCommand ssh -p 110 -q relay.example.com nc %h %p
通过 jumpbox 会对性能造成重大影响,因此我需要在大多数不需要的情况下避免它。切换 ssh/scp/rsync 主机昵称对于交互使用来说很好,但是有一些自动化/脚本化的任务非常痛苦。
我的 shell 在网络转换过程中保持打开状态,因此启动 (.zshrc) 机制无济于事。
我曾想过运行一个脚本来轮询受限子网并通过修改 .ssh/config 文件来自动切换,但我什至不确定是否存在缓存问题。在我实施之前,我想我会问是否有更好的方法。
根据源主机子网检测换出 ssh 配置的最佳方法是什么?
在伪配置中,类似于:
if <any-active-local-interface> is on 10.10.11.x:
Host web
HostName web.example.com
Port 1111
ForwardAgent yes
ProxyCommand ssh -p 110 -q relay.example.com nc %h %p
else:
Host web
HostName web.example.com
Port 1111
endif
【问题讨论】:
标签: ssh