- Dave McKay
@TheGurkha
- July 18, 2019, 9:00am EDT
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ä.
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.
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.
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) kertoossh
: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.
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.
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
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]
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 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 ”