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ä

SSH:n fiksu käyttö

Moduuli 2: SSH ja avaimet · Lukuaika: 10 minuuttia

Tavoite: Tämän oppitunnin jälkeen osaat käyttää SSH:ta kätevästi joka päivä oman asetustiedoston avulla, kopioida tiedostoja scp:llä ja rsyncillä sekä päästä tietokantaan tunnelin kautta ilman, että tietokantaportin tarvitsee olla auki internetiin.

Keskeiset käsitteet: ~/.ssh/config, Host, HostName, User, IdentityFile, scp, rsync, sftp, port forwarding, -L, tunneli, ProxyJump, ServerAliveInterval, eri porttinumero, avaimen peruuttaminen

Vähemmän kirjoittamista: ~/.ssh/config

Muutaman viikon päästä kirjoitat tämän kymmeniä kertoja päivässä:

anna@laptop:~$ ssh -i ~/.ssh/id_ed25519 anna@192.0.2.10

Asiakasohjelman asetustiedostolla komento lyhenee ja virheitä tulee vähemmän. Tiedosto on omalla tietokoneellasi: ~/.ssh/config (Windows: C:\Users\anna\.ssh\config, ilman tiedostopäätettä).

Host web1
    HostName 192.0.2.10
    User anna
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60

Host test
    HostName test.example.com
    User anna
    Port 2222

Nyt riittää pelkästään:

anna@laptop:~$ ssh web1
anna@web1:~$

Mitä rivit tekevät?

  • Host on itse valitsemasi lempinimi. Kirjoitat sen komentojen ssh, scp ja rsync perään.
  • HostName on todellinen osoite: IP-osoite tai nimi, joka löytyy DNS:stä.
  • User ja Port ovat käyttäjänimi ja portti, joten sinun ei tarvitse enää muistaa niitä.
  • IdentityFile kertoo, mitä avainta käytetään. Kätevä, jos sinulla on useita avaimia; ilman tätä riviä ssh kokeilee oletusavaimiasi.
  • ServerAliveInterval 60 lähettää 60 sekunnin välein pienen elonmerkin. Monet kotireitittimet ja wifi-verkot katkaisevat hiljaisen yhteyden muutamassa minuutissa; tämän ansiosta istuntosi pysyy auki.

Tässäkin pätee sama kuin palvelimella: ensimmäinen arvo ratkaisee. Laita siis yleiset säännöt, kuten Host *, tiedoston loppuun.

Tiedostojen kopioiminen: scp, rsync ja sftp

scp kopioi tiedoston samassa muodossa kuin cp, mutta eteen tulee host::

anna@laptop:~$ scp backup.sql web1:/home/anna/
anna@laptop:~$ scp web1:/var/log/nginx/error.log .

rsync on fiksumpi kansioiden ja suurten tietomäärien kanssa: se lähettää vain muuttuneet tiedot ja voi jatkaa keskeytynyttä kopiointia. Sen täytyy olla asennettuna molemmissa päissä (apt install rsync).

anna@laptop:~$ rsync -avz --progress ./site/ web1:/var/www/example.com/

Huomaa kauttaviiva kohdan ./site/ perässä: kauttaviivan kanssa rsync kopioi kansion sisällön, ilman sitä kansion itsensä (saat silloin /var/www/example.com/site/). Jos olet epävarma, kokeile ensin valitsimella --dry-run, ja ole hyvin varovainen valitsimen --delete kanssa: se poistaa vastaanottavasta päästä kaiken, mitä sinun puolellasi ei ole.

sftp ja graafiset ohjelmat, kuten FileZilla tai WinSCP, käyttävät samaa SSH-yhteyttä ja samaa avainta. Erillistä FTP-palvelinta ei siis tarvita. Vanhanaikaista FTP-palvelinta VPS:llä ei kannata käyttää: tavallinen FTP lähettää salasanasi verkon yli salaamattomana.

Tunneli avoimen portin sijaan

Tämä on ehkä hyödyllisin asia, jonka SSH osaa. Oletetaan, että palvelimellasi pyörii PostgreSQL-tietokanta ja haluat käyttää sitä kannettavaltasi graafisella ohjelmalla. Houkutus avata portti 5432 internetiin on suuri. Älä tee sitä: avoimet tietokantaportit ovat yksi suurimmista tietovuotojen syistä (oppitunti 10.2), ja kurssi tarkistaa myöhemmin ulkopuolelta, että ne ovat kiinni (tehtävä Z5.1).

Paikallisella porttiohjauksella (local port forwarding) annat SSH:n rakentaa tunnelin:

anna@laptop:~$ ssh -L 5432:127.0.0.1:5432 web1

Lue se näin: "kuuntele kannettavallani porttia 5432 ja lähetä kaikki sinne saapuva SSH-yhteyden kautta osoitteeseen 127.0.0.1:5432 palvelimen näkökulmasta". Niin kauan kuin istunto on auki, yhdistät tietokantaohjelmasi omalla kannettavallasi osoitteeseen localhost porttiin 5432 ja päädyt palvelimella olevaan tietokantaan.

Miksi tämä on niin hyvä?

  • Tietokanta kuuntelee palvelimella vain osoitetta 127.0.0.1, eikä siihen pääse ulkoa.
  • SSH salaa yhteyden, vaikka tietokannassa itsessään ei olisi salausta.
  • Vain se, joka pystyy kirjautumaan SSH:lla, pääsee käsiksi. Käytät siis vahvaa suojausta, joka sinulla jo on.

Jos kannettavallasi on jo jotain portissa 5432, valitse vasemmalle toinen numero: -L 15432:127.0.0.1:5432, ja yhdistä porttiin 15432. Kun laitat tunnelin tiedostoon ~/.ssh/config, se on aina käden ulottuvilla:

Host web1-db
    HostName 192.0.2.10
    User anna
    LocalForward 15432 127.0.0.1:5432

Valitsimella ssh -N web1-db saat pelkän tunnelin ilman komentoriviä.

Välipalvelimen kautta: ProxyJump

Joskus palvelimeen pääsee vain toisen palvelimen kautta, esimerkiksi tietokantapalvelimeen, jolla ei ole julkista IP-osoitetta ja joka on verkkopalvelimesi takana. ProxyJump hyppää ensimmäisen palvelimen kautta toiseen:

Host db1
    HostName 10.0.0.5
    User anna
    ProxyJump web1

Ero agent forwardingiin (oppitunti 2.1): ProxyJumpissa salaus kulkee päästä päähän kannettavasi ja palvelimen db1 välillä. Välipalvelin vain välittää paketit eikä voi käyttää avaintasi.

Eri porttinumero: kyllä vai ei?

Monet ohjeet neuvovat siirtämään SSH:n toiseen porttiin, esimerkiksi 2222. Mitä se oikeasti tekee?

  • Se vähentää kohinaa: useimmat automaattiset arvausyritykset kokeilevat vain porttia 22. Lokisi rauhoittuu.
  • Se ei ole suojaus. Kaikki portit läpikäyvä skanneri löytää SSH:n sekunneissa sen versiobannerista.

Kun käytössä ovat avaimet ja salasanakirjautuminen on pois päältä (oppitunti 2.2), portilla ei ole turvallisuuden kannalta juuri merkitystä. Jos haluat silti vaihtaa, tee se oikeassa järjestyksessä: avaa uusi portti palomuurissa, anna SSH:n kuunnella molempia portteja, testaa toisessa ikkunassa ja sulje vasta sitten vanha portti. Ubuntu 24.04:ssä ja uudemmissa tähän kuuluvat myös systemctl daemon-reload ja systemctl restart ssh.socket (oppitunti 2.2). Muista, että palveluntarjoajallasi voi olla myös oma palomuuri.

Pääsyn peruuttaminen

Entisellä työkaverilla tai verkkosivujen tekijällä oli avain palvelimellasi, eikä hän enää työskentele sinulle? Pääsyn peruuttaminen on helppoa, kun pidät kirjaa:

  1. Katso kaikki avaimet: ssh-keygen -lf ~/.ssh/authorized_keys, ja tee se jokaiselle käyttäjälle (myös /root/.ssh/authorized_keys).
  2. Poista kyseisen henkilön rivi.
  3. Jos hän käytti omaa käyttäjätiliä, lukitse se (oppitunti 3.1) ja tarkista, oliko hän ryhmässä sudo (oppitunti 3.2).
  4. Jos hän on nähnyt salasanoja, esimerkiksi tietokannan salasanan asetustiedostossa, vaihda nekin.

Tavallisella avaimella ei ole viimeistä voimassaolopäivää. Mitä et poista, toimii edelleen, vielä vuosien päästä. Jos annat jollekulle tilapäisen pääsyn, voit lisätä tiedostossa authorized_keys hänen rivinsä eteen valinnan expiry-time="20261231"; sen päivämäärän jälkeen palvelin hylkää avaimen.

Yhteenveto

  • ~/.ssh/config omalla tietokoneellasi tallentaa kunkin palvelimen nimen, käyttäjän, portin ja avaimen; Host * kuuluu loppuun.
  • scp yksittäisille tiedostoille, rsync kansioille (huomaa kauttaviiva ja --delete), sftp FTP:n sijaan.
  • Komennolla ssh -L pääset tietokantaan salatun tunnelin kautta, ja tietokantaportti pysyy ulkoa kiinni.
  • ProxyJump hyppää turvallisesti välipalvelimen kautta; parempi kuin agent forwarding.
  • Eri porttinumero vähentää kohinaa, mutta ei suojaa. Avaimet, joita et poista, toimivat edelleen.

Tietovisa (quiz)

1. Mitä ssh -L 15432:127.0.0.1:5432 web1 tekee?



2. Miksi SSH-tunneli tietokantaan on parempi kuin portin 5432 avaaminen palomuurissa?



3. Siirrät SSH:n porttiin 2222. Mikä on tärkein vaikutus?



4. Tiedostosi ~/.ssh/config alussa on Host * ja User root, ja myöhemmin Host web1 ja User anna. Kenenä kirjaudut palvelimelle ssh web1?



5. Verkkosivujen tekijällä oli oma SSH-avain palvelimellasi, eikä hän enää työskentele sinulle. Mikä ei riitä?



Tehtävä

Tehtävä O2.3: SSH-config ja tunneli. Tee omalle tietokoneellesi ~/.ssh/config, jossa on lempinimi palvelimellesi, kirjaudu sisään pelkällä komennolla ssh <bijnaam>, kopioi tiedosto scp:llä tai rsyncillä ja tee valitsimella -L tunneli palveluun, joka kuuntelee palvelimellasi vain osoitetta 127.0.0.1 (jos sinulla ei vielä ole tietokantaa, käytä palvelimen omaa porttia 22: ssh -L 2200:127.0.0.1:22 <bijnaam> ja sen jälkeen ssh -p 2200 anna@localhost). Vastaa kysymyksiin siitä, mitä tunneli tekee ja miksi porttia ei tarvitse avata.

Tehtävä O2.3: SSH-config ja tunneli

Tämän tehtävän teet itse, kukaan ei tarkista sitä. Merkitse tekemäsi kohdat ja merkitse tehtävä tehdyksi.




Merkintäsi ja muistiinpanosi pysyvät vain tässä selaimessa, emme lähetä niitä minnekään. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että olet tehnyt tehtävän.

Lue lisää

Näiden artikkelien vaiheet koskevat WebOkén VPS-palvelimia ja hallintapaneeleja; muilla palveluntarjoajilla asia toimii samaan tapaan.

Hetkinen…

Määritä verkkotunnuksesi

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

Ladataan verkkotunnuksia…