Vad Är Omvänd SSH-Tunnel? (och Hur man Använder Det)

0
457
Eny Setiyowati/Shutterstock.kom

Måste SSH till en onåbar Linux-dator? Har det ringa dig, för att sedan gräva ner samband med att få din egen fjärrkontroll SSH-session. Vi visar dig hur.

När Du Vill Använda Omvänd SSH-Tunnel

Ibland, fjärrdatorer kan vara svårt att nå. Platsen de befinner sig på kan ha tajt brandväggsregler på plats, eller kanske den lokala administratör har satt upp komplexa Network Address Translation regler. Hur når man en sådan dator om du behöver för att ansluta till det?

Låt oss skapa några etiketter. Datorn är den lokala datorn eftersom det är nära dig. Den dator du ska ansluta till fjärrdatorn eftersom det är på en annan plats än du.

För att skilja mellan de lokala och fjärranslutna datorer som används i denna artikel, den avlägsna datorn som heter “howtogeek” och kör Ubuntu Linux (med lila terminal fönster). Den lokala datorn kallas “Sulaco” och kör Manjaro Linux (med gul terminal fönster).

Normalt du skulle starta en SSH-anslutning från den lokala datorn och ansluta till fjärrdatorn. Det är inte ett alternativ i nätverk scenario som vi beskriver. Spelar det egentligen ingen roll vad den specifika nätverk frågan är—detta är användbart när du inte kan SSH direkt till en fjärrdator.

Men om nätverkskonfiguration på slutet är enkel, den fjärranslutna datorn kan ansluta till dig. Att ensam inte är tillräcklig för dina behov, dock, eftersom det inte ger dig en fungerande command-line session på fjärrdatorn. Men det är en början. Du har en förbindelse mellan två datorer.

Svaret ligger i omvänd SSH-tunnel.

Vad Är Omvänd SSH-Tunnel?

Omvänd SSH-tunnel kan du använda etablerad anslutning för att konfigurera en ny anslutning från din lokala dator tillbaka till fjärrdatorn.

Eftersom den ursprungliga anslutningen kom från den fjärranslutna datorn att du använder den för att gå i den andra riktningen är att använda det “i omvänd.” Och eftersom SSH är säker, du lägger en säker anslutning inuti en befintlig säker anslutning. Detta innebär att din anslutning till en dator fungerar som en egen tunnel inne i den ursprungliga anslutningen.

Och så är vi framme vid namn “omvänd SSH-tunnel.”

Hur Fungerar Det?

Omvänd SSH-tunnel bygger på den fjärranslutna datorn att använda etablerad anslutning för att lyssna på ny anslutning begäranden från den lokala datorn.

Den fjärranslutna datorn lyssnar på en nätverksport på den lokala datorn. Om den upptäcker en SSH-begäran till denna port, det reläer som anslutningsbegäran tillbaka till sig själv, ner etablerad anslutning. Detta ger en ny förbindelse från den lokala datorn till fjärrdatorn.

Det är lättare att sätta upp än det är att beskriva.

Med hjälp av SSH Omvänd Tunneling

SSH att redan vara installerat på din Linux-dator, men du måste kanske starta SSH-demonen (sshd) om den lokala datorn har aldrig accepterat SSH-anslutningar innan.

sudo systemctl börja sshd

Ha SSH-demonen startar varje gång du startar om din dator, kan du använda detta kommando:

sudo systemctl aktivera sshd

På den fjärranslutna datorn, använder vi oss av följande kommando.

  • -R (bakåt) alternativet talar om för ssh som ny SSH-sessioner måste skapas på fjärrdatorn.
  • Den “43022:localhost:22” berättar ssh-anslutningen begäranden till port 43022 på den lokala datorn bör överlämnas till port 22 på fjärrdatorn. Port 43022 valdes eftersom den är listad som ej allokerade. Det är inte ett speciellt nummer.
  • dave@sulaco.local är användarkonto den avlägsna datorn ska ansluta till den lokala datorn.

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

Du kan få en varning om att aldrig ansluten till den lokala datorn innan. Eller kanske du ser en varning i anslutning detaljer läggas till listan över erkända SSH-värdar. Vad du ser—om något—beror på om anslutningar som någonsin har gjorts från den fjärranslutna datorn att den lokala datorn.

Du kommer att bli tillfrågad om lösenord för det konto som du använder för att ansluta till den lokala datorn.

Observera att när anslutningen har gjorts kommandotolken förändringar från dave@howtogeek att dave@sulaco.

Vi är nu ansluten till den lokala dator från en fjärrdator. Det innebär att vi kan ge kommandon till den. Låt oss använda den som kommando för att se inloggningar på den lokala datorn.

som

Vi kan se att personen med det användarkonto som heter dave har inloggad på den lokala datorn och fjärrdatorn ansluten (med samma användaruppgifter) från IP-adress 192.168.4.25.

RELATERAT: Hur för att Avgöra det Aktuella användarkontot i Linux

Ansluta till fjärrdatorn

Eftersom anslutningen från fjärrdatorn är framgångsrika, och det är att lyssna efter anslutningar, kan vi försöka att ansluta till en fjärrdator från den lokala.

Den fjärranslutna datorn lyssnar på port 43022 på den lokala datorn. Så något counter-intuitivt—att göra en anslutning till fjärrdatorn, vi ber ssh för att ansluta till den lokala datorn på port 43022. Samband med begäran kommer att vara fram till fjärrdatorn.

ssh localhost -p 43022

Vi ombeds att ange lösenord användarkonto, sedan är ansluten till en fjärrdator från den lokala datorn. Våra Manjaro dator glatt säger, “Välkommen till Ubuntu 18.04.2 LTS”.

Observera att kommandotolken har förändrats från dave@sulaco för att dave@howtogeek. Vi har uppnått vårt mål att göra en SSH-anslutning till våra svåra att nå avlägsna datorn.

Med hjälp av SSH-Nycklar

För att göra det mer bekvämt att ansluta en dator till den lokala datorn, kan vi sätta upp SSH-nycklar.

På den fjärranslutna datorn, skriv in detta kommando:

ssh-keygen

Du kommer att bli frågad att ange en lösenfras. Du kan trycka Enter för att ignorera lösenfrasen frågor, men det är inte rekommenderat. Det skulle innebära att alla på fjärrdatorn kan göra en SSH-anslutning till din lokala dator utan att vara utmanad för ett lösenord.

Tre eller fyra ord som skiljs åt av symboler kommer att göra en robust lösenfras.

Din SSH-nycklar kommer att genereras.

Vi behöver överföra den offentliga nyckeln till den lokala datorn. Använd detta kommando:

ssh-copy-id dave@sulaco.local

Du kommer att bli tillfrågad om lösenordet för det användarkonto som du loggar in på, i detta fall, dave@sulaco.local.

Första gången du gör en anslutningsförfrågan från den fjärranslutna datorn att den lokala datorn, du kommer att behöva ange lösenfrasen. Du behöver inte ange det igen för framtida anslutningsbegäranden, för så länge som terminal-fönstret är öppet.

RELATERAT: Hur att Skapa och Installera en SSH-Nycklar Från Linux Shell

Inte Alla Tunnlar Är Skrämmande

Vissa tunnlar kan vara mörk och krånglig, men omvänd SSH-tunnel är inte så svårt att navigera om du kan hålla relationen mellan en dator och lokala datorn direkt i ditt huvud. Då vända på det.

LÄS NÄSTA

  • “Var att Placera Din Router för Bästa Wi-Fi-Hastigheter
  • “Kan Pacemaker (och Andra Medicinska Enheter) Verkligen Bli Hackad?
  • “Hur Distans Öppna en GUI-Applikation Med Spackel
  • “Vad Är Slak, och Varför Människor Älskar Det?
  • “Hur vill Sälja Din Gamla iPhone för Top Dollar