SSH-yhteys on tapa ottaa salattu etäyhteys toiseen tietokoneeseen tai palvelimeen verkon yli. Sen avulla voit hallita esimerkiksi verkkosivustosi palvelinta, ajaa komentoja ja siirtää tiedostoja turvallisesti, vaikka palvelin sijaitsisi toisella puolella maailmaa. Tässä oppaassa käydään selkokielisesti läpi, mikä SSH-yhteys on, mihin sitä käytetään ja miten otat yhteyden palvelimeen vaihe vaiheelta – ja mikä tärkeintä, kuinka teet sen turvallisesti.
Mikä SSH-yhteys on?
SSH on lyhenne sanoista Secure Shell. Se on salausta käyttävä verkkoprotokolla, jonka avulla kaksi laitetta voi keskustella keskenään suojatun yhteyden yli myös silloin, kun itse verkkoa ei voi pitää turvallisena. Käytännössä SSH antaa sinulle pääsyn palvelimen komentoriville eli tekstipohjaiseen käyttöliittymään, jolla palvelinta ohjataan kirjoittamalla komentoja.
SSH-yhteys toimii asiakas–palvelin-mallilla. Omalla koneellasi on SSH-asiakasohjelma, ja etäpalvelimella pyörii SSH-palvelinohjelmisto, joka kuuntelee yhteyksiä. Kun otat yhteyden, osapuolet sopivat salausavaimista ja muodostavat salatun kanavan, jonka läpi kaikki liikenne – mukaan lukien kirjautumistiedot ja komennot – kulkee kryptattuna. Tämä on olennainen ero vanhoihin, salaamattomiin menetelmiin kuten Telnetiin verrattuna.
Yleisin SSH-toteutus on avoimen lähdekoodin OpenSSH, joka on vakiona Linuxissa ja macOS:ssä ja mukana myös Windowsissa vuodesta 2018 lähtien. SSH-yhteys käyttää oletuksena TCP-porttia 22. Nykyään käytössä on protokollan toinen sukupolvi, SSH-2, joka korvasi vanhemman ja turvattoman SSH-1:n.
Pieni pala suomalaista tietotekniikan historiaa
SSH on suomalaista alkuperää. Tutkija Tatu Ylönen kehitti protokollan Teknillisessä korkeakoulussa Espoossa vuonna 1995 sen jälkeen, kun yliopiston verkossa oli havaittu salasanoja urkkiva hyökkäys. Ensimmäinen versio julkaistiin ilmaisohjelmana kesällä 1995, ja käyttäjämäärä kasvoi nopeasti kymmeniin tuhansiin ympäri maailmaa. Nykyään SSH on yksi internetin tärkeimmistä työkaluista palvelinten etähallinnassa.
Mihin SSH-yhteyttä käytetään?
SSH-yhteys on ennen kaikkea palvelinten ylläpitäjien ja kehittäjien työkalu, mutta siitä on hyötyä kaikille, jotka hallinnoivat omaa palvelinta. Tyypillisiä käyttötapoja ovat:
- Palvelimen hallinta komentoriviltä – asennat ohjelmistoja, muokkaat asetustiedostoja, tarkistat lokeja ja käynnistät palveluita uudelleen. Tämä on yleistä esimerkiksi VPS-palvelimen tai oman juurikäyttäjän oikeuksin hallitun koneen kanssa.
- Tiedostojen siirto – SSH:n päälle rakennettu SFTP (SSH File Transfer Protocol) ja SCP-komento siirtävät tiedostoja salatusti. SFTP on turvallinen vaihtoehto vanhalle, salaamattomalle FTP:lle. Lue lisää menetelmien eroista oppaastamme FTP-yhteyden ja SFTP:n käytöstä.
- Ohjelmistojen päivitys ja julkaisu – kehittäjät käyttävät SSH:ta verkkosovellusten ja koodin julkaisuun palvelimelle.
- Salattu tunnelointi – SSH voi myös tunneloida muuta verkkoliikennettä salatun yhteyden läpi, mikä on hyödyllistä esimerkiksi tietokantayhteyksissä.
Monet pilvipalveluntarjoajat antavat palvelimen käyttöön pelkän SSH-yhteyden kautta. Esimerkiksi kehittäjille suunnatut DigitalOceanin virtuaalipalvelimet otetaan tyypillisesti käyttöön juuri SSH:lla. Jaetuissa webhotelleissa SSH-yhteys avataan usein cPanel-hallintapaneelista.
Näin otat SSH-yhteyden palvelimeen
Yhteyden muodostamiseen tarvitset kolme tietoa: palvelimen osoitteen (IP-osoite tai verkkotunnus), käyttäjätunnuksen sekä kirjautumistavan (salasana tai SSH-avain). Peruskomennon muoto on aina sama:
Jos palvelin käyttää muuta kuin oletusporttia 22, lisää portti valitsimella -p, esimerkiksi ssh -p 2222 [email protected]. Ensimmäisellä yhteyskerralla ohjelma kysyy, luotatko palvelimen tunnisteeseen – vastaa yes, jolloin tunniste tallennetaan koneellesi myöhempää tunnistusta varten.
Windows
Windows 10 (versiosta 1809 alkaen) ja Windows 11 sisältävät sisäänrakennetun OpenSSH-asiakasohjelman. Avaa PowerShell tai komentokehote ja kirjoita yhteyskomento suoraan. Jos komentoa ei löydy, voit lisätä ominaisuuden kohdasta Asetukset → Sovellukset → Valinnaiset ominaisuudet → OpenSSH-asiakas.
Vaihtoehtoisesti voit käyttää ilmaista PuTTY-ohjelmaa, joka tarjoaa graafisen käyttöliittymän yhteyden muodostamiseen. Se on pitkään ollut suosittu valinta etenkin Windows-käyttäjille, jotka haluavat napata asetukset talteen valmiiksi.
macOS ja Linux
macOS:ssä ja Linux-jakeluissa SSH-asiakas on asennettu valmiiksi. Avaa Pääte (Terminal) ja kirjoita sama ssh [email protected] -komento. Mitään erillistä ohjelmaa ei tarvitse asentaa.
Yleisimmät SSH-komennot
Alla on kooste komennoista, joita tarvitset useimmin yhteyden ja tiedostojen hallintaan.
| Komento | Mitä se tekee |
|---|---|
| ssh [email protected] | Muodostaa SSH-yhteyden palvelimeen |
| ssh -p 2222 [email protected] | Yhdistää muuhun kuin oletusporttiin |
| ssh-keygen -t ed25519 | Luo uuden SSH-avainparin |
| ssh-copy-id [email protected] | Kopioi julkisen avaimen palvelimelle |
| scp tiedosto.txt [email protected]:/polku/ | Kopioi yksittäisen tiedoston palvelimelle |
| sftp [email protected] | Avaa salatun tiedostonsiirtoistunnon |
| exit | Katkaisee yhteyden palvelimeen |
SSH-avaimet – turvallisempi tapa kirjautua
SSH-yhteyteen voi kirjautua kahdella tavalla: salasanalla tai SSH-avaimella. Avainpohjainen kirjautuminen on selvästi turvallisempi, koska se ei ole altis salasanojen arvaamiselle. Avainpari koostuu kahdesta osasta:
- Yksityinen avain säilyy aina omalla koneellasi, eikä sitä luovuteta kenellekään.
- Julkinen avain kopioidaan palvelimelle. Palvelin tunnistaa sinut, kun yksityinen ja julkinen avain täsmäävät.
Luot avainparin komennolla ssh-keygen -t ed25519. Ed25519 on nykyään suositeltu avaintyyppi: se on vahva mutta lyhyt, ja se on ollut OpenSSH:n oletustyyppinä versiosta 9.5 (lokakuu 2023) alkaen. Jos jokin vanhempi palvelu ei tue Ed25519:ää, varavaihtoehto on 4096-bittinen RSA-avain (ssh-keygen -t rsa -b 4096).
Avaimet tallentuvat oletuksena kotikansiosi .ssh-hakemistoon (yksityinen avain nimellä id_ed25519 ja julkinen nimellä id_ed25519.pub). Suojaa yksityinen avain aina salasanalausekkeella (passphrase), jotta varastettu avaintiedosto ei yksin riitä kirjautumiseen – samalla periaatteella kuin käytät vahvoja, uniikkeja salasanoja ja salasanojen hallintaohjelmaa muissakin palveluissa.
Julkisen avaimen saat siirrettyä palvelimelle kätevimmin komennolla ssh-copy-id [email protected]. Se lisää avaimesi palvelimen tiedostoon ~/.ssh/authorized_keys, minkä jälkeen voit kirjautua ilman salasanaa.
Näin suojaat SSH-yhteyden
SSH-yhteys on itsessään salattu, mutta julkiseen verkkoon avoin palvelin houkuttelee automaattisia murtautumisyrityksiä. Siksi yhteyden suojaaminen kannattaa tehdä heti alusta alkaen. Palvelimen asetukset määritellään tiedostossa sshd_config, ja tärkeimmät kovennukset ovat:
- Ota SSH-avaimet käyttöön ja poista salasanakirjautuminen (asetus PasswordAuthentication no). Tämä poistaa salasanojen arvaamiseen perustuvat hyökkäykset kokonaan.
- Estä pääkäyttäjän (root) suora kirjautuminen (PermitRootLogin no). Kirjaudu tavallisella tunnuksella ja käytä tarvittaessa sudo-oikeuksia.
- Harkitse portin vaihtoa oletusportista 22. Tämä vähentää automaattisten skannausten määrää, mutta se ei korvaa oikeita suojauksia, vaan täydentää niitä.
- Asenna fail2ban, joka estää IP-osoitteet, jotka yrittävät kirjautua toistuvasti väärin.
Tärkein varotoimi on, että testaat avainkirjautumisen toimivaksi uudessa istunnossa ennen kuin poistat salasanakirjautumisen käytöstä. Näin et vahingossa lukitse itseäsi ulos palvelimelta. Tarkista myös asetustiedoston virheettömyys komennolla sudo sshd -t ennen palvelun uudelleenkäynnistystä.
Tarkistuslista
Turvallisen SSH-yhteyden tarkistuslista:
- Ota käyttöön SSH-avaimet ja poista salasanakirjautuminen (PasswordAuthentication no).
- Estä pääkäyttäjän suora kirjautuminen (PermitRootLogin no).
- Suojaa yksityinen avain salasanalausekkeella (passphrase).
- Testaa avainkirjautuminen uudessa istunnossa ennen salasanojen poistoa.
- Tarkista asetukset komennolla sudo sshd -t ennen uudelleenkäynnistystä.
- Harkitse SSH-portin vaihtoa vähentääksesi automaattista skannausliikennettä.
- Asenna fail2ban rajoittamaan toistuvia kirjautumisyrityksiä.
- Pidä OpenSSH ja palvelimen muut ohjelmistot aina päivitettyinä.
Yleisiä ongelmia ja virheitä
Jos yhteys ei muodostu, kyse on useimmiten yhdestä muutamasta tutusta syystä:
- Connection refused – palvelimen SSH-palvelu ei ole käynnissä, yhdistät väärään porttiin tai palomuuri estää yhteyden. Varmista portti ja palomuurin säännöt.
- Permission denied – käyttäjätunnus, salasana tai avain on väärin, tai julkista avainta ei ole lisätty palvelimelle oikein.
- Host key -varoitus – palvelimen tunniste on muuttunut. Tämä voi johtua palvelimen uudelleenasennuksesta, mutta se voi myös olla merkki ongelmasta, joten selvitä syy ennen jatkamista.
Yleisin aloittelijan virhe on jättää salasanakirjautuminen käyttöön yhdessä heikon salasanan ja root-tunnuksen kanssa. Avainpohjainen kirjautuminen yhdessä edellä kuvattujen kovennusten kanssa poistaa valtaosan riskeistä.
Lähteet
Usein kysytyt kysymykset (UKK)
Mikä on SSH-yhteyden oletusportti?
SSH käyttää oletuksena TCP-porttia 22. Portin voi vaihtaa palvelimen asetuksista, jolloin yhteyttä otettaessa portti ilmoitetaan valitsimella -p.
Tarvitsenko erillisen ohjelman SSH:n käyttöön?
Et välttämättä. Windows 10 ja 11, macOS sekä Linux sisältävät sisäänrakennetun SSH-asiakkaan, jota käytetään komentoriviltä. Graafista käyttöliittymää varten voi asentaa esimerkiksi PuTTY-ohjelman.
Mitä eroa on SSH-yhteydellä ja FTP:llä?
SSH on tarkoitettu palvelimen hallintaan komentoriviltä, ja se on aina salattu. Tiedostojen siirtoon käytetään SSH:n päällä toimivaa SFTP:tä, joka korvaa turvallisesti vanhan, salaamattoman FTP:n.
Onko SSH-yhteys turvallinen?
Kyllä. Kaikki liikenne salataan, ja avainpohjainen kirjautuminen yhdessä palvelimen kovennusten kanssa tekee yhteydestä erittäin turvallisen. Suurin riski syntyy heikoista salasanoista ja puutteellisista asetuksista.
Voinko ottaa SSH-yhteyden webhotelliini?
Monet webhotellit tarjoavat SSH-yhteyden, mutta eivät kaikki – etenkään halvimmissa jaetuissa paketeissa. SSH-yhteys avataan tyypillisesti hallintapaneelista, ja VPS- sekä dedikoiduilla palvelimilla se on lähes aina käytettävissä.



