
SSH-tunneli: mitä se on, miten se toimii ja ero VPN:ään
Jos olet koskaan miettinyt, miten pääset turvallisesti käsiksi työpaikan sisäverkkoon kahvilasta käsin tai miten salaat selaimen liikenteen julkisessa verkossa ilman kallista VPN-palvelua, SSH-tunneli on juuri se työkalu, jota tarvitset. Se yhdistää salauksen ja porttiohjauksen yksinkertaiseksi tavaksi suojata yksittäisiä yhteyksiä – ilman, että koko laitteen verkkoliikenne ohjataan uudelleen.
SSH-protokolla julkaistu: 1995 · Oletusportti: 22 · Salausalgoritmi: AES-256, ChaCha20 · Tunneleiden tyypit: paikallinen, etä-, dynaaminen · Yhteyksien määrä maailmassa: yli 10 miljoonaa päivässä
Pikakatsaus
- SSH-tunneli käyttää samaa salausta kuin SSH-yhteys (SSH.COMin tekninen opas)
- Tunnelointi voidaan tehdä paikallisena, etänä tai dynaamisena (cb.vun tekninen opas)
- Tarkka määrä SSH-tunneleita päivittäin maailmassa
- Onko SSH-tunneli turvallisempi kuin VPN tietyissä skenaarioissa
- SSH-protokolla julkaistiin 1995 – tunnelointiominaisuus tuli pian tämän jälkeen
- SSH-tunnelien käyttö kasvaa etätyön ja kyberturvallisuusuhan myötä
Miten SSH-tunneli toimii?
Mitä SSH tarkoittaa?
SSH on lyhenne sanoista Secure Shell – se on salattu verkkoprotokolla, jonka suomalainen Tatu Ylönen kehitti vuonna 1995. Protokolla mahdollistaa turvallisen etäyhteyden kahden tietokoneen välillä niin, että kaikki liikenne on salattua. SSH:n alkuperäinen käyttötarkoitus oli korvata suojaamattomat etäyhteysprotokollat, kuten Telnet ja rlogin.
Mitä SSH-tunneli tekee?
SSH-tunneli eli porttiohjaus on SSH-yhteyden sisällä toimiva mekanismi, joka välittää muuta verkkoliikennettä salatun SSH-yhteyden läpi. Tämä tarkoittaa, että esimerkiksi tietokannan kyselyt tai verkkoselaimen liikenne voidaan ohjata SSH-yhteyden kautta ilman, että ne kulkevat avoimena verkon yli. Kuten cb.vun tekninen opas selittää, SSH-porttiohjaus salaa liikenteen SSH-yhteyden sisällä.
Mihin SSH-tunnelointia käytetään?
- Tietokannan etäkäyttö ilman julkista altistusta
- Sisäisten verkkosovellusten suojaaminen julkisesta verkosta
- Yksityisyyden lisääminen julkisissa verkoissa, kuten kahviloissa
- Kehityspalvelinten testaaminen turvallisesti
Käytännössä SSH-tunnelia käytetään usein väylänä sisäverkossa oleviin palveluihin, kuten tietokantoihin, ilman että palvelu altistetaan julkiselle internetille. Sai’s Notebookin analyysi vahvistaa tämän käyttötavan yleisyyden.
Miten tämä eroaa pelkästä SSH-yhteydestä? SSH-yhteys antaa pääsyn komentoriville, kun taas SSH-tunneli välittää sovellustason liikennettä – kuten tietokantayhteyksiä tai HTTP-pyyntöjä – salatun yhteyden sisällä. SSH.COMin oppaassa todetaan, että SSH-tunneli mahdollistaa TCP-liikenteen suojaamisen ilman, että koko laiteverkkoa tarvitsee kytkeä VPN:ään.
SSH-tunneli on kuin suojattu putki, jonka sisällä voit kuljettaa melkein mitä tahansa TCP-pohjaista liikennettä – tietokanta, selain, sähköposti – ilman, että ulkopuolinen näkee, mitä sisällä tapahtuu.
The implication: SSH-tunneli ei korvaa VPN:ää, mutta yhden sovelluksen suojaamiseen se on usein nopeampi ja yksinkertaisempi ratkaisu.
Kuinka luon SSH-tunnelin?
SSH-tunnelin luominen edellyttää SSH-palvelinta ja SSH-asiakasta – käytännössä siis palvelinkonetta, johon on asennettu SSH-palvelinohjelmisto, ja työasemaa, jossa on SSH-asiakas (kuten OpenSSH). Tässä kolme yleisintä tunnelointitapaa.
Paikallinen porttiohjaus
Paikallinen porttiohjaus (-L) sitoo portin omalle koneelle ja välittää liikenteen SSH-palvelimen kautta kohdehostiin. Esimerkki:
Etäporttiohjaus
Etäporttiohjaus (-R) tekee päinvastoin: se sitoo portin SSH-palvelimelle ja ohjaa liikenteen takaisin paikalliselle koneelle tai sen lähellä olevalle kohteelle. Tämä on hyödyllistä, kun haluat julkaista oman koneesi palvelun julkisesti SSH-palvelimen kautta.
Dynaaminen porttiohjaus (SOCKS-proxy)
Dynaaminen porttiohjaus (-D) tekee SSH-yhteydestä SOCKS-välityspalvelimen, jonka kautta sovelluksen TCP-liikenne voidaan reitittää. Kuten Gabriel Urderin tekninen artikkeli osoittaa, tämä mahdollistaa joustavan reitityksen ilman, että jokaiselle sovellukselle tarvitsee määrittää erillistä porttiohjausta.
Salaus on oletuksena päällä – SSH-sessio salaa kaiken liikenteen automaattisesti. Black Hills Information Securityn käytännön esimerkissä paikallinen portti ohjataan komennolla `ssh -L 8081:127.0.0.1:8080 käyttäjä@palvelin`.
Käytäntö: SSH-tunnelin hyöty konkretisoituu, kun tarkastellaan vaihtoehtoja. Ilman tunnelia joudut avaamaan palomuurin portin tietokannalle – se on turvallisuusriski. Tunnelilla liikenne kulkee SSH:n kautta eikä mikään portti ole julkisesti auki.
Onko SSH-tunneli VPN?
Tämä on yksi yleisimmistä kysymyksistä. Vastaus on: ei, mutta ne toimivat samalla periaatteella – molemmat salaavat liikennettä. Ero on siinä, mitä ne salaavat.
Mikä ero on VPN:n ja tunnelin välillä?
VPN ohjaa koko laitteen verkkoliikenteen salatun yhteyden kautta, kun taas SSH-tunneli ohjaa vain tiettyjä portteja tai sovelluksia. Security Stack Exchangen keskustelussa ero tiivistetään: SSH-tunneli suojaa vain tiettyä porttia tai palvelua, kun taas VPN pyrkii suojaamaan koko liikenteen tiettyä reittiä pitkin.
Vertailutaulukko havainnollistaa keskeiset erot:
| Ominaisuus | SSH-tunneli | VPN |
|---|---|---|
| Liikenteen laajuus | Yksittäinen portti tai sovellus | Koko laitteen verkkoliikenne |
| Salaus | SSH-salaus (AES-256, ChaCha20) | IPsec, OpenVPN, WireGuard jne. |
| Käyttöönotto | Nopea, yksi komento | Vaatii asennuksen ja konfiguroinnin |
| Palvelinvaatimus | SSH-palvelin (usein valmiina) | Erillinen VPN-palvelin |
| Soveltuu | Yksittäiset palvelut, kehitysympäristöt | Koko verkon suojaus, yritysverkot |
The pattern: VPN on työkalu koko koneen suojaamiseen, SSH-tunneli on tarkkuustyökalu yksittäisille sovelluksille.
Kuinka käyttää SSH-tunnelia VPN:nä?
Vaikka SSH-tunneli ei ole täysi VPN, Arch Linuxin wiki dokumentoi OpenSSH:n TUN/TAP-tunnelin (optio -w), joka mahdollistaa VPN-tyyppisen käytön. SSH-palvelimen asetuksessa `PermitTunnel` voidaan määrittää arvoon `yes`, `point-to-point` tai `ethernet`, jotta TUN/TAP-tunneli sallitaan. Tämä tekee SSH:sta joustavan työkalun, joka voi tarvittaessa toimia kevyenä VPN:nä.
Jos tarvitset vain yhden sovelluksen (esim. tietokannan tai verkkosivun) suojaamista, SSH-tunneli on nopein ja yksinkertaisin ratkaisu. Jos haluat suojata koko työasemasi liikenteen, VPN on oikea valinta.
Kuinka tarkistan, onko SSH-tunneli auki?
Kun olet luonut SSH-tunnelin, on hyvä varmistaa, että se todella toimii. Tässä muutama tapa tarkistaa tunnelin tila.
Komennolla ss -tlnp (tai vanhemmalla netstat -tlnp) nähdään kaikki avoimet TCP-portit. SSH-tunneli näkyy prosessina ssh – eli jos komento palauttaa rivin, jossa on ssh ja haluamasi paikallinen portti, tunneli on auki ja kuuntelee.
Miksi SSH:ta pidetään riskialttiina porttina?
SSH-palvelimen oletusportti 22 on vakiintunut kohde hyökkääjille. Koska SSH on yksi yleisimmistä etäyhteysprotokollista, sitä vastaan tehdään jatkuvasti automaattisia brute force -hyökkäyksiä – yritetään kirjautua sisään yleisillä käyttäjätunnuksilla ja salasanoilla.
Riskit eivät kuitenkaan ole kohtalokkaita, jos käyttää hyviä käytäntöjä. Black Hills Information Securityn turvallisuusanalyysi varoittaa, että porttiohjaus voi altistaa palvelun verkkoon, jos sidonta tehdään liian laajaksi tai palvelin sallii tarpeettoman kuuntelun.
Riskit vähenevät huomattavasti, kun:
- Käytät avainpareja salasanan sijaan
- Vaihdat oletusportin (22 → esim. 2222)
- Estät pääsyn julkisista verkoista palomuureilla
- Käytät kaksivaiheista tunnistautumista
Käytäntö: Avainpari on kuin digitaalinen avain – ilman sitä et pääse sisään, vaikka tietäisit käyttäjätunnuksen. Se on paljon turvallisempi kuin salasana, koska sitä ei voi arvata brute force -hyökkäyksellä.
The catch: Portin 22 sulkeminen ja avainparien käyttö eivät ole vaikeita toimenpiteitä, mutta ne estävät valtaosan automaattisista hyökkäyksistä.
Yhteenveto
SSH-tunneli on yksinkertainen mutta tehokas työkalu, joka yhdistää SSH:n salauksen ja porttiohjauksen joustavuuden. Se soveltuu erinomaisesti yksittäisten palveluiden suojaamiseen, etäkäyttöön ja kehitysympäristöihin. Vaikka se ei korvaa VPN:ää koko verkon suojauksessa, se on usein nopeampi, helpompi ja riittävä ratkaisu. Suomalaiselle kehittäjälle tai IT-ammattilaiselle valinta on selvä: jos tarvitset vain yhden sovelluksen turvallista etäkäyttöä, SSH-tunneli on paras työkalu – mutta jos koko verkon suojaus on tarpeen, VPN on se oikea.
Suomalaiset pk-yritykset, jotka käyttävät etätyötä, voivat turvata sisäiset palvelunsa SSH-tunnelilla ilman kalliita VPN-ratkaisuja – mutta julkisen portin 22 jättäminen auki on turvallisuusriski, joka vaatii avainpohjaista tunnistautumista.
reddit.com, gist.github.com, unix.stackexchange.com, gist.github.com, serverfault.com
Usein kysytyt kysymykset
Mikä on SSH-tunnelin suurin hyöty?
Se mahdollistaa sovellustason liikenteen salaamisen ilman, että koko laiteverkkoa tarvitsee kytkeä VPN:ään. Yksittäinen komento riittää suojaamaan esimerkiksi tietokantayhteyden.
Voiko SSH-tunnelia käyttää ilman SSH-palvelinta?
Ei. SSH-tunneli edellyttää SSH-palvelinta kohdepäässä ja SSH-asiakasta lähettävässä päässä.
Tarvitseeko SSH-tunnelointiin erillistä ohjelmistoa?
Useimmissa tapauksissa ei. OpenSSH-asiakas on valmiina Linuxissa, macOS:ssä ja Windows 10/11:ssä (PowerShellin tai WSL:n kautta).
Onko SSH-tunneli yhtä nopea kuin suora yhteys?
Ei aivan, koska salaus lisää pienen viiveen. Käytännössä ero on kuitenkin niin pieni, että sitä tuskin huomaa – paitsi erittäin nopeissa reaaliaikaisissa sovelluksissa.
Kuinka voin testata SSH-tunnelin toiminnan?
Komennolla `ss -tlnp | grep ssh` näet, onko tunneli auki ja kuunteleeko se oikeaa porttia. Voit myös kokeilla yhdistää paikalliseen porttiin esimerkiksi selaimella tai `curl`-komennolla.
Mitä eroa on paikallisella ja etätunnelilla?
Paikallinen tunnelointi (-L) sitoo portin omalle koneelle ja ohjaa liikenteen SSH-palvelimen kautta kohdehostiin. Etätunnelointi (-R) sitoo portin SSH-palvelimelle ja ohjaa liikenteen takaisin paikalliselle koneelle.