Çfarë është tunelizimi i kundërt SSH? (dhe si ta përdorni)


Keni nevojë për SSH në një kompjuter Linux të paarritshëm? Bëjeni atë t'ju telefonojë, më pas gërmoni atë lidhje për të marrë seancën tuaj të largët SSH. Ne ju tregojmë se si.

Kur do të dëshironi të përdorni tunelimin e kundërt SSH

Ndonjëherë, kompjuterët në distancë mund të jenë të vështira për t'u arritur. Vendi ku ata ndodhen mund të ketë rregulla të forta të murit të zjarrit, ose ndoshta administratori lokal ka vendosur rregulla komplekse të përkthimit të adresave të rrjetit. Si të arrini një kompjuter të tillë nëse keni nevojë të lidheni me të?

Le të vendosim disa etiketa. Kompjuteri juaj është kompjuteri lokal sepse është afër jush. Kompjuteri me të cilin do të lidheni është kompjuteri në distancë sepse ndodhet në një vendndodhje të ndryshme nga ju.

Për të bërë dallimin midis kompjuterëve lokalë dhe atyre të largët të përdorur në këtë artikull, kompjuteri në distancë quhet howtogeek dhe funksionon Ubuntu Linux (me dritare të terminalit të purpurt). Kompjuteri lokal quhet Sulaco dhe funksionon Manjaro Linux (me dritare të verdha terminale).

Normalisht do të hapni një lidhje SSH nga kompjuteri lokal dhe do të lidheni me kompjuterin në distancë. Ky nuk është një opsion në skenarin e rrjetit që po përshkruajmë. Me të vërtetë nuk ka rëndësi se cila është çështja specifike e rrjetit - kjo është e dobishme sa herë që nuk mund ta dërgoni SSH direkt në një kompjuter të largët.

Por nëse konfigurimi i rrjetit në anën tuaj është i drejtpërdrejtë, kompjuteri në distancë mund të lidhet me ju. Megjithatë, vetëm kjo nuk është e mjaftueshme për nevojat tuaja, sepse nuk ju ofron një sesion pune të linjës komanduese në kompjuterin e largët. Por është një fillim. Ju keni një lidhje të vendosur midis dy kompjuterëve.

Përgjigja qëndron në tunelimin e kundërt të SSH.

Çfarë është tunelizimi i kundërt SSH?

Tuneli i kundërt SSH ju lejon të përdorni atë lidhje të krijuar për të vendosur një lidhje të re nga kompjuteri juaj lokal përsëri në kompjuterin në distancë.

Për shkak se lidhja origjinale erdhi nga kompjuteri i largët tek ju, përdorimi i tij për të shkuar në drejtimin tjetër është duke e përdorur atë në të kundërt. Dhe për shkak se SSH është i sigurt, ju po vendosni një lidhje të sigurt brenda një lidhjeje ekzistuese të sigurt. Kjo do të thotë se lidhja juaj me kompjuterin në distancë vepron si një tunel privat brenda lidhjes origjinale.

Dhe kështu arrijmë në emrin tuneli i kundërt SSH.

Si punon?

Tuneli i kundërt SSH mbështetet në kompjuterin në distancë duke përdorur lidhjen e vendosur për të dëgjuar kërkesat e reja për lidhje nga kompjuteri lokal.

Kompjuteri në distancë dëgjon në një port rrjeti në kompjuterin lokal. Nëse zbulon një kërkesë SSH në atë port, ai e kthen atë kërkesë lidhjeje në vetvete, poshtë lidhjes së krijuar. Kjo siguron një lidhje të re nga kompjuteri lokal me kompjuteri në distancë.

Është më e lehtë për t'u vendosur sesa për t'u përshkruar.

Përdorimi i tunelit të kundërt SSH

SSH do të instalohet tashmë në kompjuterin tuaj Linux, por mund t'ju duhet të filloni demonin SSH (sshd) nëse kompjuteri lokal nuk ka pranuar kurrë lidhje SSH më parë.

sudo systemctl start sshd

Për të filluar demonin SSH çdo herë që rindizni kompjuterin tuaj, përdorni këtë komandë:

sudo systemctl enable sshd

Në kompjuterin e largët, ne përdorim komandën e mëposhtme.

  • Opsioni -R (i kundërt) i tregon ssh se sesionet e reja SSH duhet të krijohen në kompjuterin në distancë.
  • “43022:localhost:22” i thotë ssh se kërkesat për lidhje në portën 43022 në kompjuterin lokal duhet të përcillen te porta 22 në kompjuterin në distancë. Porti 43022 u zgjodh sepse është renditur si i paalokuar. Nuk është një numër i veçantë.
  • dave@sulaco.local është llogaria e përdoruesit me të cilën kompjuteri në distancë do të lidhet në kompjuterin lokal.

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

Mund të merrni një paralajmërim se nuk jeni lidhur kurrë më parë me kompjuterin lokal. Ose mund të shihni një paralajmërim ndërsa detajet e lidhjes shtohen në listën e hosteve të njohur SSH. Ajo që shihni—nëse ka ndonjë gjë—varet nga fakti nëse janë bërë ndonjëherë lidhje nga kompjuteri në distancë me kompjuterin lokal.

Do t'ju kërkohet fjalëkalimi i llogarisë që po përdorni për t'u lidhur me kompjuterin lokal.

Vini re se kur lidhja është bërë, komanda ndryshon nga dave@howtogeek në dave@sulaco.

Tani jemi lidhur me kompjuterin lokal nga kompjuteri i largët. Kjo do të thotë se ne mund të lëshojmë komanda për të. Le të përdorim komandën who për të parë hyrjet në kompjuterin lokal.

who

Mund të shohim se personi me llogarinë e përdoruesit të quajtur dave është identifikuar në kompjuterin lokal dhe kompjuteri në distancë është lidhur (duke përdorur të njëjtat kredenciale të përdoruesit) nga adresa IP 192.168.4.25.

Lidhja me kompjuterin në distancë

Për shkak se lidhja nga kompjuteri në distancë është e suksesshme dhe po dëgjon për lidhje, mund të përpiqemi të lidhemi me kompjuterin në distancë nga ai lokal.

Kompjuteri në distancë po dëgjon në portin 43022 në kompjuterin lokal. Pra, disi kundër-intuitivisht, për të bërë një lidhje me kompjuterin në distancë, i kërkojmë ssh të bëjë një lidhje me kompjuterin lokal, në portën 43022. Kjo kërkesë për lidhje do t'i dërgohet kompjuterit në distancë.

ssh localhost -p 43022

Na kërkohet fjalëkalimi i llogarisë së përdoruesit dhe më pas lidhemi me kompjuterin në distancë nga kompjuteri lokal. Kompjuteri ynë Manjaro thotë me gëzim, Mirë se erdhe në Ubuntu 18.04.2 LTS.

Vini re se komanda ka ndryshuar nga dave@sulaco në dave@howtogeek. Ne e kemi arritur qëllimin tonë për të krijuar një lidhje SSH me kompjuterin tonë në distancë të vështirë për t'u arritur.

Përdorimi i SSH me çelësa

Për ta bërë më të përshtatshëm lidhjen nga kompjuteri në distancë me kompjuterin lokal, mund të konfigurojmë çelësat SSH.

Në kompjuterin e largët, shkruani këtë komandë:

ssh-keygen

Do t'ju kërkohet një frazë kalimi. Mund të shtypni Enter për të shpërfillur pyetjet e frazës së kalimit, por kjo nuk rekomandohet. Kjo do të thotë që çdokush në kompjuterin në distancë mund të bëjë një lidhje SSH me kompjuterin tuaj lokal pa u sfiduar për një fjalëkalim.

Tre ose katër fjalë të ndara me simbole do të bëjnë një frazë kalimi të fortë.

Do të krijohen çelësat tuaj SSH.

Ne duhet të transferojmë çelësin publik në kompjuterin lokal. Përdorni këtë komandë:

ssh-copy-id dave@sulaco.local

Do t'ju kërkohet fjalëkalimi për llogarinë e përdoruesit ku po identifikoheni, në këtë rast, dave@sulaco.local.

Herën e parë që bëni një kërkesë për lidhje nga kompjuteri në distancë me kompjuterin lokal, do t'ju duhet të jepni frazën e kalimit. Nuk do t'ju duhet ta futni përsëri për kërkesat e ardhshme të lidhjes, për sa kohë që dritarja e terminalit mbetet e hapur.

Jo të gjithë tunelet janë të frikshëm

Disa tunele mund të jenë të errët dhe të përdredhur, por tunelimi i kundërt SSH nuk është shumë i vështirë për t'u lundruar nëse mund të mbani lidhjen midis kompjuterit të largët dhe kompjuterit lokal drejt në kokën tuaj. Pastaj kthejeni atë. Për t'i bërë gjërat më të lehta, gjithmonë mund të konfiguroni një skedar konfigurimi SSH që ju lejon të thjeshtoni gjërat si tunelizimi ose përcjellja e agjentit ssh.