![通过隧道或直接通过 SSH 连接,具体取决于我所连接的网络](https://linux22.com/image/1350130/%E9%80%9A%E8%BF%87%E9%9A%A7%E9%81%93%E6%88%96%E7%9B%B4%E6%8E%A5%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5%EF%BC%8C%E5%85%B7%E4%BD%93%E5%8F%96%E5%86%B3%E4%BA%8E%E6%88%91%E6%89%80%E8%BF%9E%E6%8E%A5%E7%9A%84%E7%BD%91%E7%BB%9C.png)
是否可以根据客户端的 IP 地址或类似内容“自动”配置 ssh 以使用网关连接到远程机器?
假设我在我的laptop
,我可以通过有线连接将其插入大学网络并直接访问cluster.uni.edu
,但如果我在家,我必须跳过gateway.uni.edu
。因此,要从家里连接到集群,我可以像~/.ssh/config
这样:
Host cluster
Host cluster.uni.edu
ProxyCommand ssh -W %h:%p gateway.uni.edu
因此我可以直接ssh cluster
通过网关透明地访问它。缺点是,如果我接入大学网络,则不需要通过网关,因此为了避免这种情况,我必须执行类似 的操作ssh cluster.uni.edu
。
是否可以设置此项,以便 ssh 在不需要时不会跳过网关?标准如下:如果eth0已连接,且IP为xxx.yyy.zzz.www,则直接连接,否则使用网关。
我认为仅从配置文件和标准 ssh 选项来看,这可能要求太多了,但我真的想避免使用包装器脚本。(旁注:在我了解之前,我使用 LocalFowrard 来做这种事情,ssh -W
因为我不喜欢使用netcat
as的想法ProxyCommand
)
谢谢!