Если вы можете запускать такие программы, как nc
или netcat
или socat
на своем туннельном сервере, вы можете использовать ProxyCommand
вместо перенаправления портов:
# Only necessary if it matches the *.mydomain.com wildcard. Useless otherwise.
Host tunnelbox.mydomain.com
ProxyCommand none
Host *.mydomain.com
ProxyCommand ssh tunnelbox.mydomain.com nc %h %p
#ProxyCommand ssh tunnelbox.mydomain.com ncat %h %p
#ProxyCommand ssh tunnelbox.mydomain.com socat stdio tcp:%h:%p
#ProxyCommand ssh tunnelbox.mydomain.com netcat %h %p
Раскомментируйте соответствующую ProxyCommand в зависимости от того, какие инструменты установлен туннельным сервером.
Обратите внимание, что при этом будет установлено и разорвано отдельное соединение SSH для каждого установленного туннеля, что означает, что соединение будет медленнее, чем через SOCKS. (Однако это не повлияет на производительность после подключения.)
Если ваша версия SSH поддерживает это, вы можете включить мультиплексирование соединений:
Host tunnelbox.mydomain.com
ControlMaster no
ControlPath none
Host *.mydomain.com
ControlMaster auto
ControlPath ~/.ssh/S.%l.%r@%h:%p
ControlPersist 10m