我~/.ssh/config
配置了各种主机,这些主机可以在我们公司的 VPN 上访问,也可以通过 SSH 代理服务器访问。
目前我只有
Host internal-server
ProxyCommand ssh -W internal.ip:22 external-server
Run Code Online (Sandbox Code Playgroud)
但是,如果我在内部网络中,我可以直接访问内部 ip,因此通过外部服务器进行代理只会增加连接延迟。
如果无法访问内部 ip,有没有办法可以临时代理,否则直接连接?
Zor*_*che 10
我通常设置这样的东西。它假定中间主机将能够解析名称。
Host *%homeproxy
ProxyCommand ssh user@proxyhost /bin/netcat -w 1 $(echo %h | cut -d%% -f1) 22
Run Code Online (Sandbox Code Playgroud)
所以我会连接到 like ssh blah%homeproxy
。
小智 6
我使用 Match 使用不同的方法。就我而言,如果它正在运行,我想使用本地代理,如果没有,我想使用它。以下指令很好地完成了这一点:
Match Exec "nc -z 127.0.0.1 1086"
ProxyCommand nc -X 5 -x 127.0.0.1:1086 %h %p
Run Code Online (Sandbox Code Playgroud)
它匹配每次 ssh 尝试,并执行快速检查nc
以查看我的代理是否在 1086 上启动并运行(在这种情况下,nc
退出时没有错误)。如果发生这种情况,它会设置 ProxyCommand。
归档时间: |
|
查看次数: |
11441 次 |
最近记录: |