
Mikä on SSH-avain? – Täydellinen opas aloittelijoille
Kun kirjaudut etäpalvelimelle tai työnnät koodia GitHubiin, jokin pieni mutta tärkeä osa varmistaa, että yhteys on turvallinen etkä joudu huijatuksi. SSH-avain on tuo osa – se on kryptografinen avainpari, joka korvaa perinteisen salasanan.
Protokolla: Secure Shell (SSH) ·
Oletusportti: 22 ·
Avainpari: Julkinen ja yksityinen avain ·
Suositus: Ed25519-avaintyyppi
Pikakatsaus
- SSH-avainpari koostuu julkisesta ja yksityisestä avaimesta (Prehost, suomalainen webhotelli)
- Avain luodaan ssh-keygen-komennolla (SSL.com, tietoturvayritys)
- Julkinen avain kopioidaan palvelimelle ssh-copy-id-komennolla (YouStable, pilvipalveluntarjoaja)
- Tarkkaa tilastoa SSH-avainten varastamisen yleisyydestä ei ole julkisesti saatavilla
- Parhaat käytännöt avainten elinkaaren hallintaan vaihtelevat organisaatioittain
- SSH-standardi julkaistiin vuonna 1995 korvaamaan Telnet ja rlogin (YouStable, pilvipalveluntarjoaja)
- Ed25519-avaintyyppi nostettiin suositelluksi vaihtoehdoksi 2010-luvulla (YouStable, pilvipalveluntarjoaja)
- Salasanatodennuksen poisto käytöstä yleistyy turvallisuussyistä (Prehost, suomalainen webhotelli)
- Avainpohjainen todennus on tulossa uudeksi normiksi etäyhteyksissä (Prehost, suomalainen webhotelli)
Viisi keskeistä tietoa SSH-avaimesta, yksi tiivis paketti:
| Ominaisuus | Tieto |
|---|---|
| Protokolla | Secure Shell (SSH) |
| Standardi | RFC 4251 (SSH-protokolla) (IETF, standardiorganisaatio) |
| Avaintyypit | RSA, DSA, ECDSA, Ed25519 |
| Avaimen koko (suositus) | 2048–4096 bittiä RSA, 256 bittiä Ed25519 |
| Käyttötarkoitus | Etäyhteys, tiedostonsiirto, Git-autentikointi |
Mikä on SSH-avain?
SSH-avain on kryptografinen todennuskeino, joka perustuu julkisen avaimen kryptografiaan. Siinä missä salasana on muistettava merkkijono, SSH-avain on tiedostopari, joka todistaa henkilöllisyytesi matemaattisesti. Avainpari koostuu julkisesta avaimesta, jonka voit jakaa palvelimille, ja yksityisestä avaimesta, jota et koskaan luovuta kenellekään.
Miten SSH-avain eroaa salasanasta?
- Salasana lähetetään verkossa – SSH-avainta ei koskaan lähetetä, vaan se todistaa omistajuuden allekirjoituksella (Prehost, suomalainen webhotelli)
- Salasana voidaan arvata tai kalastella – yksityistä avainta ei voi päätellä julkisesta avaimesta
- SSH-avain mahdollistaa automaattisen kirjautumisen ilman, että salasanaa tarvitsee tallentaa skripteihin
The pattern: salasana on jotain, jonka tiedät, SSH-avain on jotain, jonka omistat. Jälkimmäinen on huomattavasti vaikeampi varastaa etänä.
Mitä tarkoittaa julkinen ja yksityinen avain?
- Julkinen avain (.pub-tiedosto) – tallennetaan palvelimen
~/.ssh/authorized_keys-tiedostoon (Lenovo, tietotekniikkavalmistaja) - Yksityinen avain – pidetään omalla koneella, ei koskaan jaeta (CSC Docs, suomalainen tutkimuskeskus)
Kun muodostat yhteyden, palvelin haastaa sinut allekirjoittamaan viestin yksityisellä avaimella. Jos allekirjoitus täsmää julkisen avaimen kanssa, pääset sisään. Mitään salasanaa ei liiku verkossa. Käytännön seuraus: yksityinen avain todistaa henkilöllisyytesi ilman, että se koskaan poistuu koneeltasi.
Yksityinen avain on kuin kodin pääavain. Jos joku saa sen haltuunsa, hän pääsee kaikkiin palvelimiin, joissa julkinen avain on käytössä. Siksi yksityistä avainta ei saa koskaan lähettää sähköpostilla, tallentaa pilveen tai kopioida toiselle koneelle – paitsi omalla salasanalla suojattuna.
Miten löydän SSH-avaimeni?
Jos olet koskaan käyttänyt SSH:ta tai Git:iä, sinulla saattaa jo olla SSH-avain tietämättäsi. Näin tarkistat asian.
Tarkista olemassa olevat avaimet komentorivillä
- Avaa pääte (Linux/macOS) tai komentokehote (Windows)
- Listaa avaintiedostot:
ls -la ~/.ssh/(SSL.com, tietoturvayritys) - Etsi tiedostoja kuten
id_rsa,id_ed25519tai niiden .pub-versioita
Jos kansiossa ei ole tiedostoja, sinulla ei ole SSH-avainta – tai se on tallennettu eri sijaintiin.
Avaimen oletussijainnit (id_rsa, id_ed25519)
- Linux ja macOS:
~/.ssh/id_ed25519tai~/.ssh/id_rsa - Windows:
%userprofile%\.ssh\id_ed25519tai%userprofile%\.ssh\id_rsa - Julkinen avain on aina samassa kansiossa, päättyen
.pub
Windowsissa sijainti on hieman eri, mutta periaate on sama: avaimet löytyvät .ssh-kansiosta käyttäjäprofiilin juuressa.
Älä koskaan kopioi yksityistä avaintasi toiselle koneelle ilman salasanaa. Jos työskentelet usealla laitteella, luo jokaiselle oma avainpari ja lisää julkinen avain joka palvelimelle erikseen.
Miten luon SSH-avaimen?
Avaimen luominen vie alle minuutin, ja se kannattaa tehdä heti. Alla ohjeet kolmelle yleisimmälle käyttöjärjestelmälle.
Avaimen luominen Linuxissa ja macOS:ssä
- Komentorivillä:
ssh-keygen -t ed25519(SSL.com, tietoturvayritys) - Ohjelma kysyy sijaintia – oletus
~/.ssh/id_ed25519on hyvä - Aseta salasana (passphrase) – tärkeä turvallisuuden lisä (SSL.com, tietoturvayritys)
- Julkinen avain löytyy tiedostosta
~/.ssh/id_ed25519.pub
Ed25519 on nykyisin suositeltu avaintyyppi, koska se on nopea ja turvallinen. Jos järjestelmä ei tue sitä, käytä ssh-keygen -t rsa -b 4096.
Avaimen luominen Windowsissa PuTTY:llä
- Lataa ja asenna PuTTY (sisältää PuTTYgen-työkalun)
- Avaa PuTTYgen ja valitse avaintyypiksi Ed25519 tai RSA
- Paina Generate ja liikuttele hiirtä satunnaisuuden tuottamiseksi
- Tallenna yksityinen avain ja kopioi julkinen avain palvelimelle
Windowsin uudemmissa versioissa (Windows 10/11) OpenSSH on sisäänrakennettu – voit käyttää samaa ssh-keygen-komentoa kuin Linuxissa.
Avaimen lisääminen SSH-agenttiin
- Käynnistä SSH-agentti taustalle:
eval "$(ssh-agent -s)" - Lisää avain:
ssh-add ~/.ssh/id_ed25519 - Agentti muistaa avaimen istunnon ajan – sinun ei tarvitse kirjoittaa salasanaa joka kerta
Kun avain on agentissa, etäyhteydet ja Git-operaatiot sujuvat ilman toistuvia salasanakyselyjä. Julkinen avain lisätään palvelimen authorized_keys-tiedostoon komennolla ssh-copy-id user@palvelin (YouStable, pilvipalveluntarjoaja). Ongelman ydin: jos et lisää avainta agenttiin, joudut kirjoittamaan salasanan joka kerta, mikä heikentää käyttömukavuutta ja kannustaa oikotiehen.
Mitä joku voi tehdä SSH-avaimellani?
Tämä on se kysymys, joka saa monet hereille öisin. SSH-avain ei ole vain kätevä työkalu – se on pääsylippu järjestelmiisi.
Yksityisen avaimen varastamisen vaarat
- Hyökkääjä voi kirjautua kaikille palvelimille, joissa julkinen avain on käytössä – ilman salasanaa (Prehost, suomalainen webhotelli)
- Avain voidaan varastaa haittaohjelmalla, tietovuodolla tai jos jaat avaimen vahingossa
- Jos avain on tallennettuna versionhallintaan (esim. GitHubiin vahingossa), se on julkinen tieto
Varastettu SSH-avain antaa hyökkääjälle täyden pääsyn – hän voi lukea tietoja, muokata tiedostoja ja jopa poistaa järjestelmiä. Salasanaa ei kysytä toista kertaa. Mikä tästä seuraa: yksi vuotanut avain voi vaarantaa koko infrastruktuurisi kerralla.
Miten suojata SSH-avain?
- Aseta vahva salasana (passphrase) avaimen luonnin yhteydessä (SSL.com, tietoturvayritys)
- Käytä chmod 700 ~/.ssh ja chmod 600 ~/.ssh/id_ed25519 (SSL.com, tietoturvayritys)
- Älä koskaan kopioi yksityistä avainta toiselle laitteelle ilman turvallista siirtoa
- Poista salasanatodennus käytöstä palvelimen sshd_config-tiedostossa:
PasswordAuthentication no(Prehost, suomalainen webhotelli) - Estä pääkäyttäjän (root) kirjautuminen SSH:n kautta (Prehost, suomalainen webhotelli)
Kun salasanatodennus on pois päältä, ainoa tapa päästä palvelimelle on SSH-avain. Tämä nostaa turvallisuustasoa merkittävästi, mutta tekee myös avaimen varastamisesta kriittisen riskin. Käytännön seuraus: avaimesta tulee järjestelmäsi herkin piste – sen suojaaminen on yhtä tärkeää kuin palvelimen palomuurin konfigurointi.
CSC, suomalainen tietotekniikan tutkimuskeskus, suosittelee SSH-avaimia salasanatodennuksen sijaan ja korostaa avainten suojaamista salasanalla (CSC Docs). Jos organisaatiosi noudattaa samoja linjauksia, SSH-avain on samalla sekä turvallisuuden perusta että sen heikoin lenkki.
Missä SSH-avaimeni sijaitsee?
Sijainti vaihtelee käyttöjärjestelmän mukaan, mutta perusperiaate on sama kaikilla alustoilla.
Linux- ja macOS-järjestelmät
- Oletussijainti:
~/.ssh/(eli/home/käyttäjä/.ssh/tai/Users/käyttäjä/.ssh/) - Yksityinen avain:
~/.ssh/id_ed25519tai~/.ssh/id_rsa - Julkinen avain:
~/.ssh/id_ed25519.pubtai~/.ssh/id_rsa.pub - Luettelo tunnetuista palvelimista:
~/.ssh/known_hosts
Windows-järjestelmät
- Oletussijainti:
%userprofile%\.ssh\(esim.C:\Users\Käyttäjä\.ssh\) - Jos käytät PuTTY:tä, avaimet voivat olla eri sijainnissa (
.ppk-tiedostoina) - Windowsin OpenSSH käyttää samaa kansiorakennetta kuin Linux
GitHubin SSH-avaimet
- Julkinen avain lisätään GitHubin asetuksista: Settings → SSH and GPG keys → New SSH key
- GitHub käyttää julkista avainta varmistaakseen, että sinä olet se, joka työntää koodia (Lenovo, tietotekniikkavalmistaja)
- Voit lisätä useita julkisia avaimia – yksi per laite
GitHubin tapauksessa SSH-avain toimii samalla periaatteella: palvelin (GitHub) tietää julkisen avaimesi, ja sinä todistat henkilöllisyytesi yksityisellä avaimella. Mikä tästä seuraa: jos GitHub-tilisi hallinnoi useita repositorioita, yksi varastettu avain voi vaarantaa koko projektisi lähdekoodin.
Monet tallentavat SSH-avaimen vahingossa versionhallintaan tai jakavat sen sähköpostilla. Kun yksityinen avain on kerran vuotanut, sitä ei voi enää luottaa – ainoa ratkaisu on luoda uusi avainpari ja päivittää se kaikille palvelimille.
Edut
- Turvallisempi kuin salasana – avainta ei voi arvata tai kalastella
- Automatisoi kirjautumiset – ei tarvetta kirjoittaa salasanaa joka kerta
- Toimii kaikilla alustoilla – Linux, macOS, Windows, palvelimet
- Käytössä Gitissä ja GitHubissa – nykyaikaisen kehityksen perustyökalu
- Kryptografinen vahvuus – 256-bittinen Ed25519 vastaa 4096-bittistä RSA:ta
Haitat
- Yksityisen avaimen varastaminen voi johtaa järjestelmän täydelliseen hallintaan
- Avaimen hallinta monimutkaistuu useilla laitteilla ja palvelimilla
- Aloittelijalle tekninen kynnys – komentorivi ja tiedostojärjestelmä eivät ole itsestäänselvyys
- Jos unohdat salasanan (passphrase), et voi enää käyttää avainta – uusi on luotava
- Elinkaaren hallinta puuttuu monilta organisaatioilta – avaimia ei kierrätetä säännöllisesti
Vahvistetut faktat ja avoimet kysymykset
Vahvistetut faktat
- SSH-avaimet perustuvat julkisen avaimen kryptografiaan (Prehost, suomalainen webhotelli)
- Yksityistä avainta ei saa koskaan jakaa (CSC Docs, suomalainen tutkimuskeskus)
- SSH-komentosarja ssh-keygen on osa OpenSSH-pakettia (SSL.com, tietoturvayritys)
- Salasanatodennuksen poisto käytöstä parantaa turvallisuutta (Prehost, suomalainen webhotelli)
- Ed25519 on suositeltu avaintyyppi RSA:n sijaan (YouStable, pilvipalveluntarjoaja)
Mikä on epäselvää
- Tarkkaa tilastoa SSH-avainten varastamisen yleisyydestä ei ole julkisesti saatavilla
- Parhaat käytännöt avainten elinkaaren hallintaan vaihtelevat organisaatioittain
- Avainten automaattisen kierrätyksen vaikutuksia turvallisuuteen ei ole tutkittu laajasti
SSH-protokolla mahdollistaa salatun etäyhteyden kahden järjestelmän välillä, ja SSH-avain on se pääsyvaltuus, jolla käyttäjä todistaa henkilöllisyytensä.
SSH-avain on pääsyvaltuus, jota käytetään SSH-protokollassa. Se koostuu kahdesta osasta: julkisesta avaimesta, joka jaetaan palvelimille, ja yksityisestä avaimesta, joka pidetään salassa.
SSH-avain on pääsyvaltuus suojattuun etäyhteyteen. Git-kehittäjät käyttävät sitä päivittäin työntäessään koodia GitHubiin ilman, että heidän tarvitsee kirjautua joka kerta.
SSH-avain on yksi tietoturvan kulmakivistä, mutta se on vain niin vahva kuin sen käyttötapa. Kun salasanatodennus poistetaan käytöstä ja avaimet suojataan salasanalla, riski pienenee huomattavasti. Suomalaiselle kehittäjälle tai järjestelmänvalvojalle valinta on selvä: SSH-avain on pakollinen työkalu, mutta sen huolimaton käyttö voi avata oven koko järjestelmään. Joko suojaat avaimesi huolella, tai varaudut ikävään yllätykseen. Ydinviesti: jokaisen SSH-käyttäjän on itse otettava vastuu avaimensa turvallisuudesta – muuten paras tekninen työkalu muuttuu pahimmaksi tietoturvariskiksi.
Aiheeseen liittyvää: SSH-avain: opas luomiseen ja turvallisuuteen · SSH-avain: opas luomiseen ja turvallisuuteen
Usein kysytyt kysymykset
Onko SSH-avain pakollinen GitHubissa?
Ei ole pakollinen, mutta se on vahvasti suositeltu. GitHub tukee myös HTTPS-todennusta, mutta SSH-avain mahdollistaa kirjautumisen ilman käyttäjätunnusta ja salasanaa jokaisella komennolla (Lenovo, tietotekniikkavalmistaja).
Voinko käyttää samaa SSH-avainta useilla palvelimilla?
Kyllä. Sama julkinen avain voidaan lisätä useiden palvelimien authorized_keys-tiedostoon. Tämä on kätevää, mutta myös riskialtista: jos yksityinen avain varastetaan, hyökkääjä pääsee kaikille palvelimille kerralla.
Mitä teen jos unohdan SSH-avaimeni salasanan?
Jos unohdat passphrasen, et voi enää käyttää kyseistä avainta. Ainoa ratkaisu on luoda uusi avainpari, lisätä julkinen avain uudelleen kaikille palvelimille ja poistaa vanha avain.
Miten poistan vanhan SSH-avaimen?
Poista yksityinen avain omalta koneeltasi (rm ~/.ssh/id_ed25519 ja rm ~/.ssh/id_ed25519.pub). Poista myös julkinen avain jokaisen palvelimen ~/.ssh/authorized_keys-tiedostosta.
Onko SSH-avain turvallisempi kuin HTTPS?
Kumpikin on turvallinen omassa käytössään. SSH-avain on tarkoitettu etäyhteyksiin ja Git-autentikointiin, HTTPS taas verkkosivujen salaukseen. SSH-avain on vahvempi todennukseen kuin pelkkä salasana, mutta HTTPS suojaa tiedonsiirtoa (Prehost, suomalainen webhotelli).
Miten lisään SSH-avaimen palvelimelle?
Käytä komentoa ssh-copy-id user@palvelimen-ip. Se kopioi julkisen avaimesi palvelimen ~/.ssh/authorized_keys-tiedostoon. Jos ssh-copy-id ei ole käytettävissä, kopioi avain manuaalisesti (YouStable, pilvipalveluntarjoaja).
Tarvitsenko uuden SSH-avaimen?
Jos sinulla ei ole yhtään avainta tai vanha avain on vuotanut, kyllä. Uuden avaimen luonti on turvallisin tapa varmistaa, ettei kukaan pääse järjestelmiisi vanhalla avaimella.