Siirry suoraan sisältöön

Evästeasetukset

Valitse, mitä evästetyyppejä sallit. Voit muuttaa valintaasi milloin tahansa jokaisen sivun alareunassa olevasta kohdasta Evästeasetukset. Tietosuojaseloste

Välttämättömät

Aina käytössä

Tarvitaan sisäänkirjautumiseen, ostoskorin säilyttämiseen ja valintojesi muistamiseen. Nämä ovat aina käytössä.

Mitkä evästeet?
  • weboke_sessie, weboke_klant, weboke_remember: istuntosi ja sisäänkirjautuneena pysyminen
  • weboke_basket: ostoskorisi
  • wkBtwIncl: hintojen näyttäminen verollisina tai verottomina
  • wok_cookies: evästevalintasi, 12 kuukautta

Mittaa, mikä mainos johtaa käyntiin tai tilaukseen, jotta emme maksa mainoksista, joista ei ole hyötyä.

Mitkä evästeet?
  • Google Ads Google Tag Managerin kautta (_gcl_au, _gcl_aw), enintään 90 päivää
  • OpenAI Ads, mainokset ChatGPT-palvelussa
  • wok_aff: minkä kumppanin kautta tulit meille (kumppaniohjelma), 60 päivää

4,6

Maa ja kieli

Jokaisella maalla on oma sivustonsa, jossa on kyseisen maan hinnat ja ALV.

Näytä

Ensimmäinen SSH-kirjautuminen

Moduuli 1: Ensimmäinen palvelimesi · Lukuaika: 10 minuuttia

Tavoite: Tämän oppitunnin jälkeen osaat kirjautua palvelimellesi SSH:lla ensimmäistä kertaa, tarkistaa palvelimen sormenjäljen ennen kuin luotat siihen ja tiedät, mitä teet, kun saat varoituksen palvelimen tunnisteen muuttumisesta.

Keskeiset käsitteet: SSH, asiakas ja palvelin, portti 22, versiobanneri, host key, sormenjälki (SHA256), known_hosts, trust on first use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell ja Terminal

Mikä SSH on

SSH (Secure Shell) on salattu yhteys, jolla hallitset palvelinta etänä. Kirjoitat omalla tietokoneellasi, ja komennot suoritetaan palvelimella. Kaikki yhteyden yli kulkeva, myös salasanasi, on salattua.

Yhteydellä on kaksi päätä:

  • SSH-asiakas omalla tietokoneellasi: ohjelma ssh. Se on valmiina macOS:ssä ja Linuxissa. Windows 10:ssä (versiosta 1809 alkaen) ja Windows 11:ssä OpenSSH-asiakas on osa Windowsia; käytät sitä PowerShellissä tai Windows Terminalissa. Jos se puuttuu, lisää se kohdasta Asetukset, Valinnaiset ominaisuudet, "OpenSSH-asiakas". Myös ikkunalliset ohjelmat, kuten PuTTY, toimivat, mutta tällä kurssilla käytämme ssh-ohjelmaa.
  • SSH-palvelin VPS:llä: ohjelma sshd (OpenSSH:sta). Se kuuntelee oletuksena porttia 22.

Kirjautuminen

Kirjaudut sisään käyttäjänimellä ja palvelimen osoitteella:

PS C:\Users\anna> ssh root@192.0.2.10

Tai nimellä, jos olet lisännyt sen DNS:ään (oppitunti 7.1):

anna@laptop:~$ ssh root@web1.example.com

Ensimmäisellä kerralla näet jotain tällaista:

The authenticity of host '192.0.2.10 (192.0.2.10)' can't be established.
ED25519 key fingerprint is SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Tämä on oppitunnin tärkein hetki. Älä kirjoita yes sokeasti.

Host key ja sormenjälki

Jokaisella SSH-palvelimella on yksi tai useampi host key: avainpari, jolla palvelin todistaa, kuka se on. Julkiset osat ovat palvelimella hakemistossa /etc/ssh/, esimerkiksi /etc/ssh/ssh_host_ed25519_key.pub. Jokaisessa yhteydessä palvelin osoittaa, että sillä on salainen osa.

Sormenjälki on lyhyt tiiviste (hash) tällaisesta julkisesta avaimesta. OpenSSH näyttää oletuksena SHA256-muodon: SHA256: ja sen perässä 43 merkkiä.

Ensimmäinen SSH-kirjautuminen VPS-palvelimellesi 0:59

Kysymys "Are you sure you want to continue connecting?" tarkoittaa: tietokoneesi ei vielä tunne tätä palvelinta. Kuka takaa, että puhut omalle VPS:llesi etkä jollekulle, joka sieppaa liikenteen? Ei kukaan, ellet itse vertaa sormenjälkeä luotettavaan lähteeseen.

Tämä lähde on palveluntarjoajasi konsoli (oppitunti 1.2). Siellä et keskustele palvelimen kanssa verkon kautta. Kirjaudu konsoliin ja hae sormenjälki:

root@web1:~# ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs root@web1 (ED25519)

Jos tulos vastaa täsmälleen sitä, mitä asiakas näyttää, kirjoita yes. Voit myös liittää itse sormenjäljen sanan yes sijaan; silloin ssh vertaa sen puolestasi. Jos se poikkeaa, lopeta ja selvitä syy (väärä IP-osoite, palvelin asennettu uudelleen tai jotain vakavampaa).

Huomaa avaimen tyyppi: asiakas kertoo tyypin (ED25519, ECDSA tai RSA). Vertaa saman tyypin sormenjälkeä. Monet levykuvat näyttävät sormenjäljet myös konsolissa ensimmäisen käynnistyksen yhteydessä (cloud-init), rivien kuten BEGIN SSH HOST KEY FINGERPRINTS välissä.

known_hosts ja trust on first use

Kun kirjoitat yes, näet:

Warning: Permanently added '192.0.2.10' (ED25519) to the list of known hosts.

Asiakas tallentaa avaimen tiedostoon ~/.ssh/known_hosts (Windowsissa C:\Users\<nimi>\.ssh\known_hosts). Tästä eteenpäin se vertaa avainta automaattisesti jokaisessa yhteydessä. Tätä mallia kutsutaan nimellä trust on first use (TOFU): ensimmäisellä kerralla sinun on tarkistettava itse, sen jälkeen asiakas valvoo.

Siksi ensimmäinen tarkistus on niin tärkeä: jos luotat väärään avaimeen, asiakas ei sen jälkeen enää koskaan varoita.

Jos käytät itse Debian- tai Ubuntu-tietokonetta, tiedoston known_hosts nimet ovat oletuksena tiivistettyjä (HashKnownHosts yes tiedostossa /etc/ssh/ssh_config), joten et näe siellä luettavia IP-osoitteita. Windowsissa ja macOS:ssä ne ovat luettavassa muodossa. Haku toimii kaikkialla näin:

anna@laptop:~$ ssh-keygen -F 192.0.2.10
# Host 192.0.2.10 found: line 3
|1|kP9...= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...

"REMOTE HOST IDENTIFICATION HAS CHANGED"

Joskus näet tämän varoituksen:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
...
Host key verification failed.

Palvelin näyttää eri avaimen kuin asiakkaasi tuntee. ssh kieltäytyy silloin muodostamasta yhteyttä. Syitä on kahdenlaisia:

TavallinenEpäilyttävä
Olet asentanut VPS:n uudelleen (uudet host keyt)Et ole muuttanut mitään, ja silti avain on eri
IP-osoite on annettu toiselle palvelimelleOlet vieraassa wifi-verkossa
Olet tarkoituksella vaihtanut host keytKonsolin sormenjälki poikkeaa siitä, mitä asiakas nyt näkee

Jos syy on tavallinen, tarkista sormenjälki uudelleen konsolissa ja poista vasta sen jälkeen vanha rivi:

anna@laptop:~$ ssh-keygen -R 192.0.2.10
# Host 192.0.2.10 found: line 3
/home/anna/.ssh/known_hosts updated.

Seuraavassa yhteydessä saat taas ensimmäisen kerran kysymyksen, ja tarkistat jälleen. Älä koskaan aseta StrictHostKeyChecking no asetuksiisi päästäksesi eroon varoituksesta: silloin kytket pois juuri sen suojauksen, josta on kyse.

Versiobanneri

Ennen kuin mitään salataan, asiakas ja palvelin lähettävät toisilleen tekstirivin: versiobannerin. Se näkyy kaikille internetissä. Näet sen komennolla ssh -v:

anna@laptop:~$ ssh -v root@192.0.2.10 2>&1 | grep "remote software"
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.6p1 Ubuntu-3ubuntu13.5

Palvelin kertoo tässä, mitä protokollaa (2.0) ja mitä ohjelmistoa se käyttää. Debian ja Ubuntu lisäävät perään paketin version. Se ei ole salaisuus, joka pitäisi piilottaa: hyökkääjät kokeilevat kuitenkin kaikkea, ja suojaudut päivityksillä (moduuli 4), et toisella bannerilla. Hyödyllistä kuitenkin: bannerista näet ulkopuolelta, ajaako palvelimesi todella päivitettyä versiota.

AlmaLinuxissa ja Rocky Linuxissa

Kirjautuminen ja sormenjäljet toimivat samoin. Palvelun nimi on sshd eikä ssh (systemctl status sshd). Bannerissa ei ole jakelun nimeä, vain OpenSSH-versio.

Yhteenveto

  • SSH on salattu yhteys palvelimellesi; ssh on asiakas, sshd palvelin portissa 22.
  • Ensimmäisessä yhteydessä asiakas näyttää host keyn sormenjäljen. Vertaa sitä konsolissa ajetun komennon ssh-keygen -lf tulosteeseen ennen kuin kirjoitat yes.
  • Asiakas tallentaa avaimen tiedostoon ~/.ssh/known_hosts ja varoittaa jatkossa itse (trust on first use).
  • "REMOTE HOST IDENTIFICATION HAS CHANGED" on tavallinen uudelleenasennuksen jälkeen; muuten se on epäilyttävä. Poista vanha rivi vain tarkistuksen jälkeen komennolla ssh-keygen -R.
  • Versiobanneri on julkinen; suoja tulee päivityksistä, ei piilottamisesta.

Tietovisa (quiz)

1. Mihin vertaat sormenjälkeä, jonka ssh näyttää ensimmäisessä yhteydessä?



2. Mitä ~/.ssh/known_hosts tekee?



3. Olet asentanut VPS:n uudelleen ja saat ilmoituksen "REMOTE HOST IDENTIFICATION HAS CHANGED". Mikä on oikea järjestys?



4. Miksi ensimmäinen tarkistus on trust on first use ‑mallissa niin tärkeä?



5. Mitä SSH-palvelimen versiobanneri näyttää?



Tehtävä

Tehtävä Z1.3: Palvelimesi SSH-banneri ja sormenjälki. Anna palvelimesi osoite, bannerin ohjelmistoversio (kuten OpenSSH_9.6p1) ja ED25519-sormenjälki, jonka hait konsolissa komennolla ssh-keygen -lf. Ohjelma muodostaa yhden yhteyden SSH-porttiisi, lukee bannerin ja host keyn ja vertaa niitä. Se ei kirjaudu sisään.

Tehtävä Z1.3: Palvelimesi SSH-banneri ja sormenjälki

Emme kirjaudu sisään emmekä kokeile salasanoja tai avaimia. Osoita ensin, että palvelin on sinun: napsauta "Näytä koodini" ja tallenna isäntänimesi verkkopalvelimelle tiedosto /.well-known/weboke-cursus-<code>.txt, jossa on vain tuo koodi. Haemme sen suoraan jokaisesta tarkistamastamme IP-osoitteesta (IPv4 ja IPv6 erikseen); TXT-tietue ei tässä kelpaa. Tarkistus tehdään osoitteesta heavy.webawere.nl (185.158.167.16 ja 2a07:ae80:100:0:185:158:167:16), ei verkkopalvelimeltamme. Vain kirjautuneille kurssilaisille; enintään 6 tarkistusta tunnissa palvelinta kohden. Tässä tehtävässä avaamme yhden yhteyden ja luemme vain palvelimen bannerin ja avaimen; lokiisi ei tule kirjautumisyritystä.





Sitä, mitä kirjoitat ja mitä löydämme, ei tallenneta. Selaimesi muistaa vastauksesi ja sen, oletko suorittanut tehtävän. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että tehtävä oli (lähes) oikein; voit poistaa sen myös sieltä.

Lue lisää

Hetkinen…

Määritä verkkotunnuksesi

Määritä kullekin verkkotunnukselle nimipalvelimet, liitos webhotelliin ja se, kuka tulee omistajaksi.

Ladataan verkkotunnuksia…