Wolkra

Oppaat

SSH-avainten luominen ja käyttö

Näin luot SSH-avaimet Linuxilla, macOS:llä ja Windowsilla, lisäät ne VPS:lle, käytät ssh-agentia ja asetustiedostoa ja kierrätät avaimia turvallisesti. Selkeät vaiheet, oikeat komennot.

Päivitetty 4 min lukuaika

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:

bash
ssh-keygen -t ed25519 -C "laptop-2026"
  • -t ed25519 valitsee modernin avaintyypin.
  • -C lisää 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:

text
~/.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:

powershell
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

bash
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:

bash
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:

bash
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ä:

bash
ssh -i ~/.ssh/id_ed25519 [email protected]

5. Käytä ssh-agentia, niin kirjoitat salalauseen vain kerran

macOS

bash
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Lisää sitten tiedostoon ~/.ssh/config:

text
Host *
  AddKeysToAgent yes
  UseKeychain yes

Linux

Useimmat työpöytäympäristöt käynnistävät agentin automaattisesti. Muuten:

bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Windows

powershell
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:

text
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:

bash
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:

bash
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-2026 on helpompi löytää kuin user@host.
  • Käy authorized_keys lä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ä:

bash
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:

bash
ssh-keygen -t ed25519 -f ~/.ssh/deploy_ci -N "" -C "ci-deploy"

Lisää palvelimella tiedostoon authorized_keys avaimen eteen sitä rajoittavat asetukset:

text
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-pty ja 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:

bash
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.

Käynnistä palvelin Frankfurtissa

Luo tili, lataa saldoa ja aja palvelinta alkaen €3.49 kuukaudessa. Maksat vain käyttämistäsi tunneista. Mittaamaton kaistanleveys kaikissa paketeissa.