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]


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow