问题是:我试图在不同时间通过 SSH 连接到一个系统,该系统至少可以从 3 个不同的网络访问——有时是直接访问,有时是通过代理访问。
直接连接比通过中间主机连接更快、更可靠,这又比通过一般互联网连接更快、更可靠,所以我希望 SSH 尝试以 3 种不同方式以优先方式进行连接,选择首先成功。
显然,它们都是同一台机器,所以我不想继续根据我从哪里连接到 3 个不同的别名之间手动选择。
但是,我找不到任何解决此问题的机制。是否有可能做到这一点,或者没有?
如果不是,人们在这种情况下通常会做什么?
不要使用别名进行ssh
连接!使用适当的ssh_config
在~/.ssh/config
。它有一些真正强大的功能。
假设您可以识别您所在的网络。例如使用您的 IP,例如可以使用hostname -I
. 所以让我们写一些配置:
# in network1 I am getting ip from "10.168.*.*" and I need to connect through proxy
Match Host myalias Exec hostname -I | grep 10\.168\.
Hostname real-host-IP
ProxyCommand ssh -W %h:%p proxy-server
# in network2 I am getting IP from "192.168.*.*" and I do not need a proxy
Match Host myalias Exec hostname -I | grep 192\.168\.
Hostname real-host-IP
# in network3 I am getting something else
Run Code Online (Sandbox Code Playgroud)
我相信你明白了...
归档时间: |
|
查看次数: |
1604 次 |
最近记录: |