Mi az a fordított SSH-alagút? (és hogyan használd)

  • Dave McKay

    @TheGurkha

  • July 18, 2019, 9:00am EDT
Eny Setiyowati/.com

Ne kell SSH egy elérhetetlen Linux számítógépre? Hívja fel magát, majd ássa le ezt a kapcsolatot, hogy saját távoli SSH munkamenetet kapjon. Megmutatjuk, hogyan.

Mikor szeretné használni a fordított SSH-alagutat

Néha a távoli számítógépeket nehéz elérni. Lehet, hogy a telephelyükön szigorú tűzfalszabályok vannak érvényben, vagy a helyi rendszergazda bonyolult hálózati címfordítási szabályokat állított be. Hogyan érhetünk el egy ilyen számítógépet, ha csatlakoznunk kell hozzá?

Hozzunk létre néhány címkét. A te számítógéped a helyi számítógép, mert a közeledben van. A számítógép, amelyhez csatlakozni fogsz, a távoli számítógép, mert máshol van, mint te.

Hirdetés

Az ebben a cikkben használt helyi és távoli számítógépek megkülönböztetése érdekében a távoli számítógép neve “howtogeek”, és Ubuntu Linuxot futtat (lila terminálablakokkal). A helyi számítógép neve “Sulaco”, és Manjaro Linuxot futtat (sárga terminálablakokkal).

Normális esetben a helyi számítógépről SSH-kapcsolatot indítunk, és csatlakozunk a távoli számítógéphez. Ez az általunk leírt hálózati forgatókönyvben nem lehetséges. Tényleg nem számít, hogy mi a konkrét hálózati probléma – ez akkor hasznos, ha nem tudunk SSH-val egyenesen egy távoli számítógéphez csatlakozni.

De ha a hálózati konfiguráció az Ön oldalán egyszerű, a távoli számítógép csatlakozhat Önhöz. Ez önmagában azonban nem elegendő az Ön igényeihez, mivel nem biztosít működő parancssori munkamenetet a távoli számítógépen. De ez egy kezdet. Létrejött a kapcsolat a két számítógép között.

A válasz a fordított SSH-alagútban rejlik.

Mi a fordított SSH-alagút?

A fordított SSH-alagút lehetővé teszi, hogy a létrehozott kapcsolatot felhasználva új kapcsolatot hozzon létre a helyi számítógépéről vissza a távoli számítógépre.

Hirdetés

Mert mivel az eredeti kapcsolat a távoli számítógéptől érkezett Önhöz, a másik irányba történő felhasználása “visszafelé” történő felhasználás. És mivel az SSH biztonságos, egy meglévő biztonságos kapcsolaton belülre helyezel egy biztonságos kapcsolatot. Ez azt jelenti, hogy a távoli számítógéppel való kapcsolata úgy működik, mint egy privát alagút az eredeti kapcsolaton belül.

És így jutottunk el a “fordított SSH-alagút” elnevezéshez.

Hogyan működik?

A fordított SSH-alagút arra épül, hogy a távoli számítógép a létrehozott kapcsolatot használja a helyi számítógép új kapcsolati kéréseinek figyelésére.

A távoli számítógép a helyi számítógép egy hálózati portján figyel. Ha SSH-kérést észlel erre a portra, akkor a létrehozott kapcsolaton keresztül továbbítja a kapcsolati kérést vissza önmagához. Ezáltal új kapcsolat jön létre a helyi számítógépről a távoli számítógépre.

Hirdetés

Egyszerűbb beállítani, mint leírni.

SSH Reverse Tunneling

A Linux számítógépen már telepítve lesz az SSH, de előfordulhat, hogy el kell indítani az SSH démont (sshd), ha a helyi számítógép még soha nem fogadott SSH kapcsolatot.

sudo systemctl start sshd

Hogy az SSH daemon minden egyes újraindításkor elinduljon, használjuk a következő parancsot:

sudo systemctl enable sshd

A távoli számítógépen a következő parancsot használjuk.

  • A -R (fordított) opció azt mondja a ssh-nak, hogy a távoli számítógépen új SSH munkameneteket kell létrehozni.
  • A “43022:localhost:22” azt mondja a ssh-nak, hogy a helyi számítógép 43022-es portjára irányuló kapcsolati kéréseket a távoli számítógép 22-es portjára kell továbbítani. A 43022-es portot azért választottuk, mert az a listában úgy szerepel, mint ami nincs kiosztva. Ez nem egy különleges szám.
  • [email protected] az a felhasználói fiók, amelyhez a távoli számítógép csatlakozni fog a helyi számítógépen.
ssh -R 43022:localhost:22 [email protected]

Előfordulhat, hogy figyelmeztetést kap arról, hogy még soha nem csatlakozott a helyi számítógéphez. Vagy figyelmeztetést kaphat, amikor a kapcsolat adatai hozzáadódnak a felismert SSH-állomáshelyek listájához. Hogy mit lát – ha lát egyáltalán valamit -, az attól függ, hogy a távoli számítógépről a helyi számítógépre történt-e már valaha kapcsolat.

Hirdetés

A rendszer megkérdezi a helyi számítógéphez való csatlakozáshoz használt fiók jelszavát.

Megjegyezzük, hogy a kapcsolat létrejöttével a parancssor dave@howtogeek-ről dave@sulaco-ra változik.

Most a távoli számítógépről csatlakoztunk a helyi számítógéphez. Ez azt jelenti, hogy parancsokat adhatunk ki neki. Használjuk a who parancsot, hogy megnézzük a bejelentkezéseket a helyi számítógépen.

who

Láthatjuk, hogy a dave nevű felhasználói fiókkal rendelkező személy bejelentkezett a helyi számítógépre, a távoli számítógép pedig (ugyanazokkal a felhasználói hitelesítő adatokkal) a 192.168.4.25 IP-címről csatlakozott.

RELATE:

Kapcsolódás a távoli számítógéphez

Mivel a távoli számítógépről a kapcsolat sikeres, és a távoli számítógép hallgatja a kapcsolatokat, megpróbálhatunk a helyi számítógépről csatlakozni a távoli számítógéphez.

Hirdetés

A távoli számítógép a helyi számítógép 43022-es portján figyel. Tehát – némileg ellentmondásos módon – ahhoz, hogy kapcsolatot létesítsünk a távoli számítógéppel, megkérjük a ssh-t, hogy létesítsen kapcsolatot a helyi számítógéppel, a 43022-es porton. Ez a kapcsolatkérés továbbításra kerül a távoli számítógéphez.

ssh localhost -p 43022

Elkérjük a felhasználói fiók jelszavát, majd a helyi számítógépről csatlakozunk a távoli számítógéphez. Manjaro számítógépünk boldogan közli: “Üdvözöljük az Ubuntu 18.04.2 LTS rendszerben.”

Megjegyezzük, hogy a parancssor dave@sulaco helyett dave@howtogeek lett. Elértük a célunkat, hogy SSH-kapcsolatot létesítsünk a nehezen elérhető távoli számítógépünkkel.

SSH használata kulcsokkal

Hogy kényelmesebbé tegyük a távoli számítógépről a helyi számítógépre való csatlakozást, SSH-kulcsokat állíthatunk be.

A távoli számítógépen írjuk be ezt a parancsot:

ssh-keygen

Hirdetés

A rendszer kérni fogja a jelszót. Az Enter billentyűvel figyelmen kívül hagyhatja a jelszókérdést, de ez nem ajánlott. Ez azt jelentené, hogy a távoli számítógépen bárki létre tudna hozni SSH-kapcsolatot a helyi számítógépéhez anélkül, hogy jelszót kérdeznének tőle.

Három vagy négy, szimbólumokkal elválasztott szóból áll egy megbízható jelszótag.

Az SSH-kulcsok generálása megtörténik.

A nyilvános kulcsot a helyi számítógépre kell továbbítanunk. Használja ezt a parancsot:

ssh-copy-id [email protected]

Hirdetés

A rendszer kérni fogja a bejelentkezni kívánt felhasználói fiók jelszavát, ebben az esetben a [email protected] jelszót.

A távoli számítógépről a helyi számítógépre történő első kapcsolatkéréskor meg kell adnia a jelszót. A jövőbeni kapcsolatkéréseknél nem kell újra megadnia, amíg az adott terminálablak nyitva marad.

RELATED:

Nem minden alagút ijesztő

Némelyik alagút sötét és fordulatos lehet, de a fordított SSH-alagút nem túl nehéz, ha a távoli számítógép és a helyi számítógép közötti kapcsolatot a fejében tudja tartani. Akkor fordítsd vissza.

Dave McKay
Dave McKay akkor használt először számítógépet, amikor még a lyukasztott papírszalag volt divatban, és azóta is programoz. Az informatikai iparban eltöltött több mint 30 év után ma már főállású technológiai újságíró. Pályafutása során dolgozott szabadúszó programozóként, egy nemzetközi szoftverfejlesztő csapat vezetőjeként, IT-szolgáltatási projektmenedzserként, legutóbb pedig adatvédelmi tisztviselőként. Dave a Linux evangelistája és a nyílt forráskód támogatója.Teljes életrajz ”

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.