Можно ли "автоматически" настроить ssh для использования шлюза для подключения к удаленной машине на основе IP-адреса клиента или чего-то подобного?
Предположим, я на своем 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
качестве ProxyCommand
)
Спасибо!