Wat Is Reverse SSH Tunneling? (en Hoe Deze te Gebruiken)

0
432
Aanvullende Setiyowati/Shutterstock.com

Moet SSH naar een onbereikbare Linux-computer? Hebt u bellen, dan hol neer dat de verbinding om uw eigen remote SSH sessie. Wij laten u zien hoe.

Wanneer Je Wilt Gebruiken Reverse SSH Tunneling

Soms, externe computers kunnen worden moeilijk te bereiken. De site zij zich bevinden op kan hebben strakke firewall regels in de plaats, of misschien de lokale beheerder heeft ingesteld complex Netwerk Adres Vertaling van de regels. Hoe bereik je bijvoorbeeld een computer als u verbinding wilt maken?

Laten we stellen een aantal labels. Uw computer is de lokale computer, want het is bij u in de buurt. De computer waarmee u verbinding gaat maken met de externe computer omdat het in een andere locatie dan u.

Om onderscheid te maken tussen de lokale en de externe computer gebruikt in dit artikel, de externe computer is de zogenaamde “howtogeek” en draait Ubuntu Linux (met paarse terminal windows). De lokale computer heet “genaamd de sulaco vertrekken” en wordt uitgevoerd Manjaro Linux (met gele terminal windows).

Normaal gesproken zou je vuur op een SSH-verbinding van de lokale computer en maak verbinding met de externe computer. Dat is niet een optie in de netwerken scenario we het beschrijven. Het maakt eigenlijk niet uit wat het specifieke probleem is—dit is handig wanneer u niet kunt SSH rechtstreeks naar een externe computer.

Maar als de netwerk configuratie op uw einde is eenvoudig, de externe computer verbinding kan maken met je. Dat alleen is niet voldoende voor uw behoeften, echter, omdat het niet een met een command-line sessie op de externe computer. Maar het is een begin. U moet voor een verbinding tussen de twee computers.

Het antwoord ligt in reverse SSH tunneling.

Wat Is Reverse SSH Tunneling?

Reverse SSH tunneling kunt u gebruik maken van die verbinding om een nieuwe verbinding van uw lokale computer naar de externe computer.

Omdat de oorspronkelijke verbinding kwam van de externe computer om u, met behulp van het aan de andere kant is het te gebruiken “in omgekeerde richting.” En omdat SSH is veilig, je bent het zetten van een beveiligde verbinding in een bestaande beveiligde verbinding. Dit betekent dat uw verbinding met de externe computer fungeert als een privé-tunnel in de originele verbinding.

En zo komen we op de naam “reverse SSH tunneling’.

Hoe Werkt Het?

Reverse SSH tunneling is gebaseerd op de externe computer met behulp van de verbinding om te luisteren naar nieuwe aansluiting aanvragen van de lokale computer.

De externe computer luistert op een netwerk poort op de lokale computer. Als het ontdekt dat een SSH aanvraag tot die poort, het relais die de verbinding verzoek terug naar zichzelf, naar beneden de verbinding. Dit zorgt voor een nieuwe verbinding van de lokale computer naar de externe computer.

Het is eenvoudiger in te stellen dan het is om te beschrijven.

Met behulp van Reverse SSH Tunneling

SSH al geïnstalleerd op uw Linux-computer, maar u kan nodig zijn om te beginnen met de SSH daemon (sshd) als de lokale computer heeft nooit aanvaard SSH verbindingen voor.

sudo systemctl start sshd

Om de SSH daemon start elke keer dat u uw computer opnieuw opstarten, gebruik je dit commando:

sudo systemctl enable sshd

Op de externe computer, gebruiken we het volgende commando.

  • De -R (reverse) optie geeft ssh dat nieuwe SSH-sessies moeten worden gemaakt op de externe computer.
  • De “43022:localhost:22” vertelt dat ssh verbinding verzoeken naar de haven 43022 op de lokale computer moeten worden doorgestuurd naar poort 22) op de externe computer. De haven 43022 werd gekozen omdat het wordt vermeld als zijnde niet-toegewezen. Het is niet een speciaal nummer.
  • dave@sulaco.local is de account van de gebruiker van de externe computer is aangesloten op de lokale computer.

ssh -R 43022:localhost:22 dave@sulaco.local

Krijgt u mogelijk een waarschuwing over het hebben nooit aangesloten op de lokale computer voordat. Of u kan zien een waarschuwing als de verbinding details worden toegevoegd aan de lijst van de erkende SSH host. Wat zie je, als alles hangt af van of verbindingen die ooit zijn gemaakt van de externe computer naar de lokale computer.

U zal worden gevraagd om het wachtwoord van de account die u gebruikt om verbinding te maken met de lokale computer.

Merk op dat wanneer de verbinding is gemaakt wordt de opdracht prompt verandert van dave@howtogeek naar dave@genaamd de sulaco vertrekken.

We zijn nu aangesloten op de lokale computer van de externe computer. Dat betekent dat we kunnen commando ‘ s aan het. Laten we gebruik maken van het who commando om de aanmeldingen op de lokale computer.

die

We kunnen zien dat de persoon met de gebruiker met de naam dave heeft aangemeld bij de lokale computer en de externe computer heeft aangesloten (met dezelfde gebruikersgegevens) vanaf IP-adres 192.168.4.25.

GERELATEERD: het Bepalen van de Huidige Gebruiker Account in Linux

De verbinding met de Externe Computer

Omdat de aansluiting van de externe computer is gelukt, en het is luisteren naar verbindingen, kunnen we proberen om verbinding te maken met de externe computer van de plaatselijke bevolking.

De externe computer is te luisteren op poort 43022 op de lokale computer. Dus enigszins contra-intuïtief om verbinding te maken met de externe computer, vragen we ssh verbinding te maken met de lokale computer op poort 43022. Die verbinding aanvraag doorsturen naar de externe computer.

ssh localhost -p 43022

We zijn gevraagd om het wachtwoord voor de gebruikersaccount, dan aangesloten op de remote computer op vanaf de lokale computer. Onze Manjaro computer graag zegt, “Welkom bij Ubuntu 18.04.2 LTS”.

Merk op dat de prompt is veranderd van dave@genaamd de sulaco vertrekken naar dave@howtogeek. We hebben ons doel bereikt van het maken van een SSH verbinding naar onze hard-to-reach-externe computer.

Met behulp van SSH Met Sleutels

Om het meer geschikt te maken vanaf de externe computer naar de lokale computer, kunnen we het opzetten van SSH sleutels.

Op de externe computer, typ de volgende opdracht:

ssh-keygen

U zal worden gevraagd om een wachtwoord in. U kunt druk op Enter om te negeren de wachtzin vragen, maar dit is niet aanbevolen. Het zou betekenen dat iedereen op de externe computer kan maken van een SSH verbinding naar uw lokale computer zonder dat hij wordt uitgedaagd voor een wachtwoord.

Drie of vier woorden, gescheiden door symbolen maken een robuuste wachtzin in te vullen.

Uw SSH-sleutels worden gegenereerd.

We moeten overdracht van de publieke sleutel op de lokale computer. Gebruik je dit commando:

ssh-copy-id dave@sulaco.local

U zal worden gevraagd om het wachtwoord voor de gebruikersaccount waarmee u zich aanmeldt bij, in dit geval, dave@sulaco.local.

De eerste keer dat u een verbinding verzoek van de externe computer op de lokale computer, moet u het wachtwoord. U zal niet opnieuw op te geven voor toekomstige verbindingsverzoeken, voor zo lang als dat het terminal-venster blijft open.

GERELATEERD: het Maken en Installeren van SSH Sleutels Van de Linux-Shell

Niet Alle Tunnels Zijn Eng

Sommige tunnels en donker bochtig, maar reverse SSH tunneling is niet al te moeilijk om te navigeren als je kunt houden van de relatie tussen de externe computer en lokale computer rechtstreeks in je hoofd. Dan keren.

LEES VERDER

  • “De Plaats voor Uw Router voor de Beste Wi-Fi-Snelheden
  • “Kan Pacemakers en Andere Medische Apparaten) Echt Gehackt Worden?
  • “Hoe staat om op Afstand Openen van een GUI-Applicatie Met PuTTY
  • “Wat Is Slap, en Waarom Doen Mensen Hou?
  • “Hoe Verkoop Je Oude iPhone voor Top Dollar