Secure Shell
Odwrócone tunele
Szukaj…
OpenSSH
Utworzenie odwrotnego tunelu ssh wymaga tylko jednego przełącznika -R do pierwotnego polecenia.
Wiersz poleceń
Załóżmy, że łączysz się z example.com jako guest użytkownika za pomocą polecenia ssh [email protected] . Otwierający tunel zwrotny może wyglądać następująco:
ssh -R 2222:localhost:22 [email protected]
Otworzy port 2222 na zdalnym serwerze (tylko interfejs pętli zwrotnej) i każde połączenie z tym portem zostanie przekierowane na lokalny serwer ssh komputera (port 22 ).
Zakłada się również, że masz dozwolone opcje AllowTcpForwarding yes i PermitOpen any w swoim sshd_config na serwerze. W przeciwnym razie wystąpi błąd z błędem
open failed: administratively prohibited: open failed
Jeśli chcesz, aby przekazywany port był dostępny dla innych adresów sieciowych (niż localhost ), musisz dodatkowo zezwolić GatewayPorts yes i użyć adresu IP lub nazwy hosta lub IP):
ssh -R 2222:example.com:22 [email protected]
Konfiguracja
Dodatkowo możesz określić zdalne przekierowanie portów w ~/.ssh/config aby uniknąć wpisywania tej samej linii przy każdym połączeniu. Dobrą praktyką może być skonfigurowanie również aliasu dla hosta, który będzie miał takie przekazywanie, jeśli często łączysz się z hostem i nie chcesz inicjować przekierowania portów za każdym razem:
Host example.com-R
Hostname example.com
User guest
RemoteForward 2222 localhost:22
a następnie utwórz zdalne przekierowanie portów za pomocą ssh example.com-R
Działa w tle
Przekierowanie portów można po prostu uruchomić w tle za pomocą przełączników -N (nie uruchamiaj polecenia zdalnego, tylko przekazywanie), -f (przejdź do tła po uwierzytelnieniu), -T (wyłącz zdalne przydzielanie TTY). Kładąc wszystko razem:
ssh -NTfR 2222:localhost:22 [email protected]