SSH вперед несколько портов

9

Так что это работает для меня:

ssh -v -L 8080:remotewebserver:8080 me@jumphost

Как насчет того, чтобы я также хотел включить больше портов?

Я хочу переслать не только 8080, но также 8443, 8923 и 8181?

Нужно ли устанавливать новое соединение для каждого порта?

devnull
источник

Ответы:

19

Нет, вам не нужно одно соединение на перенаправленный порт, просто добавьте следующие -Lоператоры:

ssh -L LPort1:RHOST1:RPORT1 -L LPORT2:RHOST2:RPORT2 me@ju.mp.ho.st

Это можно сократить ssh jump, используя «псевдоним» jump, если вы настроите соответствующий раздел в вашем ~/.ssh/configвиде:

Host jump
    User myUserName
    Hostname ju.mp.ho.st
    Port 2345
    LocalForward 8080 remotewebserver:8080
    LocalForward 8443 remotewebserver:8443
    LocalForward 8923 remotewebserver:8923
    LocalForward 8181 remotewebserver:8181

# Eliminates reconnection delay, and does not try to re-forward ports:
Host *
  ControlMaster auto
  ControlPath /tmp/%r@%h:%p

Я использовал эту технику в течение многих лет, конечно, уже с 10+ портами, но когда мне нужно переадресовать больше портов, я использую поддержку Dynamic Socks Proxy -D.

Алекс Страгиес
источник
1
При подключении я видел бы эти сообщения об ошибках для каждого перенаправленного порта: bind: Address already in use channel_setup_fwd_listener_tcpip: cannot listen to port:затем Could not request local forwarding.с настройками Control * они исчезли, спасибо! PS: Я часто использовал этот флаг комментария на SE, и вы первый человек, которого я видел, который также использовал его.
Ценю