Mikä on käänteinen SSH-tunnelointi? (and How to Use It)

  • Dave McKay

    @TheGurkha

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

Pitäisikö sinun päästä SSH:lla tavoittamattomaan Linux-tietokoneeseen? Laita se soittamaan sinulle ja kaivautu sitten tuohon yhteyteen saadaksesi oman etä-SSH-istuntosi. Näytämme miten.

Kun haluat käyttää käänteistä SSH-tunnelointia

Joskus etätietokoneita voi olla vaikea tavoittaa. Sivustolla, jossa ne sijaitsevat, saattaa olla tiukat palomuurisäännöt, tai kenties paikallinen ylläpitäjä on asettanut monimutkaisia verkko-osoitteiden kääntämissääntöjä. Miten tavoitat tällaisen tietokoneen, jos haluat muodostaa siihen yhteyden?

Valmistetaanpa joitakin tunnuksia. Tietokoneesi on paikallinen tietokone, koska se on lähellä sinua. Tietokone, johon aiot muodostaa yhteyden, on etätietokone, koska se on eri paikassa kuin sinä.

Mainos

Erottelemaksemme tässä artikkelissa käytetyt paikalliset ja etätietokoneet toisistaan, etätietokoneen nimi on ”howtogeek” ja siinä käytetään Ubuntu Linuxia (jossa on purppuranpunaiset pääteikkunat). Paikallisen tietokoneen nimi on ”Sulaco” ja siinä käytetään Manjaro Linuxia (keltaisilla terminaali-ikkunoilla).

Normaalisti laukaisisit SSH-yhteyden paikallisesta tietokoneesta ja ottaisit yhteyden etätietokoneeseen. Se ei ole mahdollista kuvailemassamme verkkoskenaariossa. Sillä ei oikeastaan ole väliä, mikä erityinen verkko-ongelma on – tämä on hyödyllistä aina, kun et voi ottaa SSH-yhteyttä suoraan etätietokoneeseen.

Mutta jos verkkokonfiguraatio on sinun puolellasi suoraviivainen, etätietokone voi ottaa yhteyden sinuun. Se ei kuitenkaan yksinään riitä tarpeisiisi, koska se ei anna sinulle toimivaa komentoriviistuntoa etäkoneella. Se on kuitenkin alku. Sinulla on muodostettu yhteys näiden kahden tietokoneen välille.

Vastaus löytyy käänteisestä SSH-tunneloinnista.

Mitä on käänteinen SSH-tunnelointi?

Käänteisen SSH-tunneloinnin avulla voit käyttää tuota muodostettua yhteyttä uuden yhteyden muodostamiseen paikallisesta tietokoneestasi takaisin etätietokoneeseen.

Mainos

Koska alkuperäinen yhteys tuli etätietokoneelta sinulle, sen käyttäminen toiseen suuntaan on sen käyttämistä ”käänteisesti”. Ja koska SSH on suojattu, laitat suojatun yhteyden olemassa olevan suojatun yhteyden sisään. Tämä tarkoittaa, että yhteytesi etätietokoneeseen toimii yksityisenä tunnelina alkuperäisen yhteyden sisällä.

Siten päädymme nimeen ”käänteinen SSH-tunnelointi”.

Miten se toimii?

Käänteinen SSH-tunnelointi perustuu siihen, että etätietokone käyttää muodostettua yhteyttä kuunnellakseen paikallisen tietokoneen lähettämiä uusia yhteystietopyyntöjä.

Edätietokone kuuntelee paikallisessa tietokoneessa olevaa verkko-porttia. Jos se havaitsee SSH-pyynnön kyseiseen porttiin, se välittää kyseisen yhteyspyynnön takaisin itselleen muodostettua yhteyttä pitkin. Näin saadaan aikaan uusi yhteys paikallisesta tietokoneesta etätietokoneeseen.

Mainos

Se on helpompi asentaa kuin kuvata.

SSH:n käyttäminen käänteistunneloinnissa

SSH on jo valmiiksi asennettu Linux-tietokoneeseesi, mutta saatat joutua käynnistämään SSH-daemonin (sshd), jos paikallinen tietokone ei ole koskaan aiemmin hyväksynyt SSH-yhteyksiä.

sudo systemctl start sshd

Käytä tätä komentoa, jotta SSH-daemon käynnistyy aina tietokoneen uudelleenkäynnistyksen yhteydessä:

sudo systemctl enable sshd

Edätietokoneessa käytetään seuraavaa komentoa.

  • Vaihtoehto -R (käänteinen) kertoo ssh:lle, että uudet SSH-istunnot on luotava etätietokoneeseen.
  • Vaihtoehto ”43022:localhost:22” kertoo ssh:lle, että yhteyspyynnöt paikallisessa tietokoneessa olevaan porttiin 43022 on ohjattava etätietokoneen porttiin 22. Portti 43022 valittiin, koska se on listattu varaamattomaksi. Se ei ole mikään erikoisnumero.
  • [email protected] on käyttäjätili, johon etätietokone aikoo muodostaa yhteyden paikallisessa tietokoneessa.
ssh -R 43022:localhost:22 [email protected]

Saatat saada varoituksen siitä, ettet ole koskaan aiemmin muodostanut yhteyttä paikalliseen tietokoneeseen. Tai saatat nähdä varoituksen, kun yhteyden tiedot lisätään tunnistettujen SSH-isäntien luetteloon. Se, mitä näet – jos näet mitään – riippuu siitä, onko etätietokoneesta koskaan muodostettu yhteyksiä paikalliseen tietokoneeseen.

Mainos

Sinulta kysytään sen tilin salasanaa, jolla muodostat yhteyden paikalliseen tietokoneeseen.

Huomaa, että kun yhteys on muodostettu, komentokehote muuttuu dave@howtogeek:sta dave@sulaco:ksi.

Olemme nyt yhteydessä paikalliseen tietokoneeseen etätietokoneesta. Tämä tarkoittaa, että voimme antaa sille komentoja. Käytetään komentoa who nähdäksemme paikallisen tietokoneen kirjautumiset.

who

Näemme, että henkilö, jolla on käyttäjätili nimeltä dave, on kirjautunut sisään paikalliseen tietokoneeseen, ja etäkoneeseen on muodostettu yhteys (samoilla käyttäjätiedoilla) IP-osoitteesta 192.168.4.25.

VASTAAVA: How to Determine the Current User Account in Linux

Yhteyden muodostaminen etätietokoneeseen

Koska yhteys etätietokoneesta on onnistunut ja se kuuntelee yhteyksiä, voimme yrittää muodostaa yhteyden etätietokoneeseen paikallisesta tietokoneesta.

Mainos

Edätietokone kuuntelee paikallisen tietokoneen porttia 43022. Joten – hieman intuition vastaisesti – saadaksemme yhteyden etätietokoneeseen pyydämme ssh muodostamaan yhteyden paikalliseen tietokoneeseen, porttiin 43022. Tämä yhteyspyyntö välitetään eteenpäin etätietokoneelle.

ssh localhost -p 43022

Meiltä kysytään käyttäjätilin salasana, minkä jälkeen otamme yhteyden etätietokoneeseen paikalliselta tietokoneelta. Manjaro-tietokoneemme sanoo iloisesti: ”Tervetuloa Ubuntu 18.04.2 LTS:ään”.

Huomaa, että komentokehote on muuttunut dave@sulacosta dave@howtogeekiksi. Olemme saavuttaneet tavoitteemme muodostaa SSH-yhteys vaikeasti saavutettavaan etätietokoneeseemme.

SSH:n käyttäminen avaimilla

Voidaksemme helpottaa yhteyden muodostamista etätietokoneesta paikalliseen tietokoneeseen, voimme määrittää SSH-avaimet.

Kirjoita etäkoneessa tämä komento:

ssh-keygen

Mainos

Sinulta kysytään salasanaa. Voit jättää salasanakysymykset huomiotta painamalla Enter-näppäintä, mutta tämä ei ole suositeltavaa. Se tarkoittaisi, että kuka tahansa etätietokoneella voisi muodostaa SSH-yhteyden paikalliseen tietokoneeseesi ilman, että salasanaa kysytään.

Kolme tai neljä symboleilla erotettua sanaa muodostavat vankan salasanan.

SSH-avaimesi luodaan.

Julkinen avain on siirrettävä paikalliseen tietokoneeseen. Käytä tätä komentoa:

ssh-copy-id [email protected]

Mainos

Kysytään kirjautuvan käyttäjätilin salasanaa, tässä tapauksessa [email protected].

Ensimmäisellä kerralla, kun teet yhteydenottopyynnön etäkoneesta paikalliseen tietokoneeseen, sinun on annettava tunnuslause. Sinun ei tarvitse antaa sitä enää uudelleen tulevissa yhteyspyynnöissä niin kauan kuin kyseinen pääteikkuna on auki.

RELATED: SSH-avaimien luominen ja asentaminen Linux Shellistä

Eivät kaikki tunnelit ole pelottavia

Jotkut tunnelit voivat olla pimeitä ja mutkikkaita, mutta käänteinen SSH-tunnelointi ei ole liian vaikeaa, jos pystyt pitämään etätietokoneen ja paikallisen tietokoneen välisen suhteen suorassa päässäsi. Sitten käännä se.

Dave McKay
Dave McKay käytti tietokoneita ensimmäisen kerran, kun reikänauhat olivat muodissa, ja hän on ohjelmoinut siitä lähtien. Yli 30 vuotta tietotekniikka-alalla työskenneltyään hän on nyt päätoiminen teknologiatoimittaja. Uransa aikana hän on työskennellyt freelance-ohjelmoijana, kansainvälisen ohjelmistokehitystiimin johtajana, IT-palvelujen projektipäällikkönä ja viimeksi tietosuojavastaavana. Dave on Linux-evankelista ja avoimen lähdekoodin puolestapuhuja.Read Full Bio ”

Vastaa

Sähköpostiosoitettasi ei julkaista.