SSH-avain on tiedostopari: yksityinen avain, joka pysyy tietokoneellasi, ja julkinen avain, jonka asetat palvelimelle. Luo avain komennolla ssh-keygen -t ed25519, lisää julkinen avain palvelimelle, ja kirjaudut sisään ilman salasanaa ja paljon turvallisemmin.
Tämä opas käy läpi Linuxin, macOS:n ja Windowsin sekä yksityiskohdat, jotka tekevät avainten käytöstä mukavaa.
Miksi avaimet ovat salasanoja parempia
Jokainen internetissä oleva palvelin kohtaa jatkuvia salasanan arvausyrityksiä portissa 22. Vahva salasana hidastaa niitä; avain pysäyttää ne, koska arvattavaa ei ole. Avaimet mahdollistavat myös automaation: skriptit, julkaisutyökalut ja CI voivat kirjautua tallentamatta salasanaa.
1. Luo avain
Linux ja macOS
Avaa pääte ja suorita:
ssh-keygen -t ed25519 -C "laptop-2026"
-t ed25519valitsee modernin avaintyypin.-Clisää kommentin, josta tunnistat avaimen myöhemmin. Käytä laitteen nimeä, ei sähköpostiosoitetta, jos arvostat yksityisyyttä.
Hyväksy oletuspolku (~/.ssh/id_ed25519) ja aseta salalause. Sinulla on nyt:
~/.ssh/id_ed25519 # private key, never share
~/.ssh/id_ed25519.pub # public key, safe to share
Windows 10 ja 11
Windowsissa on mukana OpenSSH. Avaa PowerShell ja suorita sama komento:
ssh-keygen -t ed25519 -C "desktop-2026"
Tiedostot tallentuvat kansioon C:\Users\<you>\.ssh\. Jos käytät PuTTYä, voit tuoda yksityisen avaimen PuTTYgeniin ja tallentaa sen .ppk-tiedostoksi.
2. Katso julkista avaintasi
cat ~/.ssh/id_ed25519.pub
Se on yksi rivi, joka alkaa ssh-ed25519. Tämä on se osa, jonka kopioit palvelimille ja konsoliin.
3. Aseta avain palvelimelle
Vaihtoehto A: palvelinta luodessa
Helpoin tapa. Lisää julkinen avain Wolkran konsolissa kohtaan SSH-avaimet ja valitse se, kun luot palvelimen. Avain kirjoitetaan root-tilille ensimmäisellä käynnistyskerralla, eikä salasanaa lähetetä. Katso yhdistäminen SSH:lla.
Vaihtoehto B: ssh-copy-id:llä
Jos palvelin on jo olemassa ja pääset kirjautumaan salasanalla:
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected] # example address
Vaihtoehto C: käsin
Windowsissa tai kun ssh-copy-id ei ole saatavilla, liitä avain palvelimen tiedostoon authorized_keys:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo 'ssh-ed25519 AAAA... laptop-2026' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Käyttöoikeuksilla on väliä. Jos muut voivat kirjoittaa hakemistoon ~/.ssh tai tiedostoon authorized_keys, OpenSSH ohittaa tiedoston.
4. Kirjaudu sisään
Jos sinulla on useita avaimia, nimeä käytettävä:
ssh -i ~/.ssh/id_ed25519 [email protected]
5. Käytä ssh-agentia, niin kirjoitat salalauseen vain kerran
macOS
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Lisää sitten tiedostoon ~/.ssh/config:
Host *
AddKeysToAgent yes
UseKeychain yes
Linux
Useimmat työpöytäympäristöt käynnistävät agentin automaattisesti. Muuten:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Windows
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519
6. Kirjoita SSH-asetustiedosto
Asetustiedosto muuttaa pitkät komennot lyhyiksi nimiksi. Luo ~/.ssh/config:
Host web
HostName 203.0.113.10
User deploy
IdentityFile ~/.ssh/id_ed25519
Host db
HostName 10.0.0.5
User deploy
ProxyJump web
Nyt ssh web yhdistää ensimmäiseen palvelimeen, ja ssh db tavoittaa yksityisverkossa olevan palvelimen hyppäämällä web-palvelimen kautta. Näin hallitset palvelimia, joilla ei ole julkista IP-osoitetta, esimerkiksi yksityisverkossa. (Osoitteet ovat esimerkkejä.)
7. Kopioi tiedostoja samalla avaimella
scp ja rsync käyttävät samoja avaimia ja asetuksia:
scp backup.tar.gz web:/home/deploy/
rsync -avz ./site/ web:/var/www/site/
8. Poista salasanakirjautuminen käytöstä palvelimella
Kun avainkirjautuminen toimii, poista salasanat käytöstä, jotta palvelin hyväksyy vain avaimet:
sudo tee /etc/ssh/sshd_config.d/10-keys-only.conf >/dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password
EOF
sudo sshd -t && sudo systemctl reload ssh
Pidä olemassa oleva istunto auki, kun testaat uutta. prohibit-password sallii root-kirjautumisen vain avaimella; aseta arvoksi no, kun työskentelet sudo-käyttäjänä. Lisää oppaassa Ubuntu-palvelimen suojaaminen.
9. Kierrätä ja mitätöi avaimia
Hyviä tapoja:
- Yksi avain laitetta kohden. Jos kannettava katoaa, poista vain sen avain.
- Kommentit, joilla on merkitystä.
laptop-2026on helpompi löytää kuinuser@host. - Käy
authorized_keysläpi aika ajoin ja poista avaimet, joita kukaan ei käytä.
Mitätöidäksesi avaimen poista sen rivi tiedostosta ~/.ssh/authorized_keys jokaiselta palvelimelta. Korvataksesi sen lisää ensin uusi avain, testaa ja poista sitten vanha.
10. Valinnainen: laiteavaimet
OpenSSH tukee FIDO2-turva-avaimia. Kun yhteensopiva avain on kytkettynä:
ssh-keygen -t ed25519-sk -C "yubikey"
Yksityistä avainta ei voi kopioida laitteelta, ja jokainen kirjautuminen vaatii kosketuksen. Se on vahvin vaihtoehto ylläpitäjätileille.
11. Käytä SSH-avaimia julkaisuihin ja CI:hin
Automaattisten järjestelmien ei pidä käyttää henkilökohtaista avaintasi. Luo jokaiselle järjestelmälle erillinen avain ilman salalausetta ja rajoita, mitä se voi tehdä palvelimella:
ssh-keygen -t ed25519 -f ~/.ssh/deploy_ci -N "" -C "ci-deploy"
Lisää palvelimella tiedostoon authorized_keys avaimen eteen sitä rajoittavat asetukset:
from="198.51.100.0/24",no-port-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAA... ci-deploy
from=hyväksyy avaimen vain annetulta osoitealueelta (tässä esimerkki).no-ptyja välitysasetukset estävät interaktiivisen käytön.command="..."voi pakottaa yhden tietyn komennon, kuten julkaisuskriptin.
Säilytä yksityinen avain CI-järjestelmäsi salaisuusvarastossa, ei koskaan repositoriossa. Jos CI-järjestelmä joskus vaarantuu, yhden rivin poistaminen tiedostosta authorized_keys katkaisee sen pääsyn.
12. Tarkista palvelimen isäntäavain
Ensimmäisen yhteyden sormenjälkikysymys suojaa sinua yhdistämästä väärään koneeseen. Tärkeiden palvelinten kohdalla vertaa sitä oikeaan. Suorita palvelimen selainkonsolissa:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
Jos se vastaa SSH-asiakkaasi näyttämää, vastaa yes. Sormenjälki tallennetaan sitten tiedostoon ~/.ssh/known_hosts ja tarkistetaan jokaisella myöhemmällä yhteydellä.
Vianetsintä
| Viesti | Tavallinen syy |
|---|---|
Permission denied (publickey) |
Väärä käyttäjä, väärä avain tai virheelliset käyttöoikeudet hakemistossa ~/.ssh |
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED |
Palvelin on asennettu uudelleen tai IP-osoite on otettu uudelleen käyttöön; poista vanha merkintä komennolla ssh-keygen -R 203.0.113.10 |
| Salasanaa kysytään silti | Avainta ei tarjottu; kokeile ssh -v nähdäksesi, mitä avaimia yritetään |
Suorita ssh -v user@host saadaksesi yksityiskohtaisen lokin siitä, mitä asiakas yrittää. Jos olet lukinnut itsesi kokonaan ulos Wolkra-palvelimelta, avaa selainkonsoli palvelimen näkymästä tai käynnistä pelastustilaan.
Seuraavaksi: käy läpi ensimmäiset askeleet uudella VPS:llä.
Usein kysytyt kysymykset
Mitä SSH-avaintyyppiä kannattaa käyttää?
Käytä Ed25519:ää. Se on lyhyt, nopea ja turvallinen, ja kaikki nykyiset OpenSSH-versiot tukevat sitä. Käytä 4096-bittistä RSA:ta vain hyvin vanhoissa järjestelmissä.
Pitäisikö SSH-avaimellani olla salalause?
Kyllä. Salalause salaa yksityisen avaimen levyllä, joten varastettu kannettava tai varmuuskopio ei anna pääsyä palvelimillesi. ssh-agentin ansiosta kirjoitat sen vain kerran istuntoa kohden.
Voinko käyttää samaa avainta useilla palvelimilla?
Kyllä. Julkinen avaimesi voi olla monella palvelimella. Moni käyttää yhtä avainta laitetta kohden eikä palvelinta kohden, jolloin kadonneen laitteen avaimen voi mitätöidä yhdestä paikasta.
Entä jos kadotan yksityisen avaimeni?
Kirjaudu muulla tavalla, esimerkiksi selainkonsolin kautta, ja poista vanha julkinen avain tiedostosta ~/.ssh/authorized_keys. Lisää sitten uusi avain.
Mihin lisään avaimen Wolkrassa?
Konsolin kohtaan SSH-avaimet. Tallennetut avaimet voi valita palvelinta luodessa, ja ne kirjoitetaan root-tilille ensimmäisellä käynnistyskerralla.