Preskoči na vsebino

Nastavitve piškotkov

Za vsako vrsto izberite, katere piškotke dovolite. Svojo izbiro lahko kadar koli spremenite prek povezave Nastavitve piškotkov na dnu vsake strani. Izjava o zasebnosti

Nujni

Vedno vklopljeno

Potrebni so za prijavo, shranjevanje košarice in pomnjenje Vaših izbir. Vedno so vklopljeni.

Kateri piškotki?
  • weboke_sessie, weboke_klant, weboke_remember: Vaša seja in ohranjanje prijave
  • weboke_basket: Vaša košarica
  • wkBtwIncl: prikaz cen z DDV ali brez DDV
  • wok_cookies: Vaša izbira glede piškotkov, 12 mesecev

Meri, kateri oglas vodi do obiska ali naročila, da ne plačujemo za oglase, ki ne prinesejo ničesar.

Kateri piškotki?
  • Google Ads prek Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, oglasi v ChatGPT
  • wok_aff: prek katerega partnerja ste prišli k nam (partnerski program), 60 dni

4,6

Država in jezik

Vsaka država ima svojo spletno stran, s cenami in DDV za to državo.

Prikaži

Prva prijava prek SSH

Modul 1: Vaš prvi strežnik · Čas branja: 10 minut

Učni cilj: Po tej lekciji se boste lahko prvič prijavili v svoj strežnik prek SSH, preverili prstni odtis strežnika, preden mu zaupate, in vedeli, kaj storiti ob opozorilu, da se je identiteta strežnika spremenila.

Ključni pojmi: SSH, odjemalec in strežnik, vrata 22, pasica z različico, gostiteljski ključ (host key), prstni odtis (SHA256), known_hosts, trust on first use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell in Terminal

Kaj je SSH

SSH (Secure Shell) je šifrirana povezava, s katero strežnik upravljate na daljavo. Tipkate na svojem računalniku, ukazi pa se izvajajo na strežniku. Vse, kar potuje po povezavi, tudi Vaše geslo, je šifrirano.

Obstajata dve strani:

  • odjemalec SSH na Vašem računalniku: program ssh. Na macOS in Linux je nameščen privzeto. Na Windows 10 (od različice 1809) in Windows 11 je odjemalec OpenSSH del sistema Windows; uporabljate ga v PowerShellu ali v Windows Terminalu. Če ga ni, ga dodate prek Nastavitve, Izbirne funkcije, "Odjemalec OpenSSH". Delujejo tudi programi z okni, kot je PuTTY, vendar v tem tečaju uporabljamo ssh.
  • strežnik SSH na VPS: program sshd (iz paketa OpenSSH). Privzeto posluša na vratih 22.

Prijava

Prijavite se z uporabniškim imenom in naslovom strežnika:

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

Ali z imenom, če ste ga vpisali v DNS (lekcija 7.1):

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

Prvič boste videli nekaj takega:

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])?

To je najpomembnejši trenutek te lekcije. Ne vtipkajte slepo yes.

Gostiteljski ključ in prstni odtis

Vsak strežnik SSH ima enega ali več gostiteljskih ključev (host keys): pare ključev, s katerimi strežnik dokazuje, kdo je. Javni deli so na strežniku v /etc/ssh/, na primer /etc/ssh/ssh_host_ed25519_key.pub. Pri vsaki povezavi strežnik pokaže, da ima zasebni del.

Prstni odtis je kratek povzetek (zgoščena vrednost) takšnega javnega ključa. OpenSSH privzeto prikaže obliko SHA256: SHA256:, ki mu sledi 43 znakov.

Vprašanje "Are you sure you want to continue connecting?" pomeni: Vaš računalnik tega strežnika še ne pozna. Kdo zagotavlja, da govorite s svojim VPS in ne z nekom, ki prestreza promet? Nihče, razen če prstni odtis sami primerjate z zanesljivim virom.

Ta vir je konzola Vašega ponudnika (lekcija 1.2). Tam s strežnikom ne komunicirate prek omrežja. Prijavite se v konzolo in izpišite prstni odtis:

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

Če se natančno ujema s tem, kar prikaže odjemalec, vtipkajte yes. Namesto yes lahko prilepite tudi sam prstni odtis; potem ga ssh primerja namesto Vas. Če se razlikuje, se ustavite in ugotovite, zakaj (napačen naslov IP, strežnik je bil znova nameščen ali nekaj resnejšega).

Bodite pozorni na vrsto: odjemalec navede vrsto ključa (ED25519, ECDSA ali RSA). Primerjajte prstni odtis iste vrste. Veliko slik sistema prstne odtise ob prvem zagonu izpiše tudi v konzolo (cloud-init), med vrsticama, kot je BEGIN SSH HOST KEY FINGERPRINTS.

known_hosts in trust on first use

Ko vtipkate yes, vidite:

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

Odjemalec shrani ključ v ~/.ssh/known_hosts (v sistemu Windows C:\Users\<naam>\.ssh\known_hosts). Od zdaj naprej ga pri vsaki povezavi samodejno primerja. Temu modelu pravimo trust on first use (TOFU, zaupanje ob prvi uporabi): prvič morate preveriti sami, nato pa nad tem bdi odjemalec.

Zato je to prvo preverjanje tako pomembno: če zaupate napačnemu ključu, Vas odjemalec pozneje nikoli več ne opozori.

Če sami delate na računalniku z Debianom ali Ubuntujem, so imena v known_hosts privzeto zgoščena (HashKnownHosts yes v /etc/ssh/ssh_config), zato tam ne vidite berljivih naslovov IP. V sistemih Windows in macOS so zapisana berljivo. Iskanje povsod deluje z ukazom:

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"

Včasih se prikaže to opozorilo:

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

Strežnik pokaže drugačen ključ, kot ga pozna Vaš odjemalec. ssh takrat zavrne povezavo. Vzroki so dveh vrst:

ObičajnoSumljivo
VPS ste znova namestili (novi gostiteljski ključi)Niste ničesar spremenili, pa je ključ kljub temu drugačen
Naslov IP je bil dodeljen drugemu strežnikuSte v tujem omrežju Wi-Fi
Gostiteljske ključe ste namerno zamenjaliPrstni odtis v konzoli se razlikuje od tega, kar zdaj vidi odjemalec

Če obstaja običajna razlaga, v konzoli znova preverite prstni odtis in šele nato odstranite staro vrstico:

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

Pri naslednji povezavi znova dobite vprašanje kot prvič in znova preverite. V nastavitve nikoli ne vpišite StrictHostKeyChecking no, da bi se znebili opozorila: s tem izklopite prav tisto zaščito, za katero gre.

Pasica z različico

Preden se karkoli šifrira, si odjemalec in strežnik izmenjata vrstico besedila: pasico z različico. Vidna je vsem na internetu. Ogledate si jo z 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

Strežnik tu pove, kateri protokol (2.0) in katero programsko opremo uporablja. Debian in Ubuntu za tem dodata še različico paketa. To ni skrivnost, ki bi jo morali skrivati: napadalci tako ali tako preizkusijo vse, zaščitite pa se s posodobitvami (modul 4), ne z drugačno pasico. Je pa uporabno: iz pasice od zunaj vidite, ali Vaš strežnik res poganja posodobljeno različico.

Na AlmaLinux in Rocky Linux

Prijava in prstni odtisi delujejo enako. Storitev se imenuje sshd namesto ssh (systemctl status sshd). Pasica ne vsebuje imena distribucije, le različico OpenSSH.

Povzetek

  • SSH je šifrirana povezava do Vašega strežnika; ssh je odjemalec, sshd pa strežnik na vratih 22.
  • Ob prvi povezavi odjemalec prikaže prstni odtis gostiteljskega ključa. Primerjajte ga z izpisom ukaza ssh-keygen -lf v konzoli, preden vtipkate yes.
  • Odjemalec shrani ključ v ~/.ssh/known_hosts in Vas odslej opozarja sam (trust on first use).
  • "REMOTE HOST IDENTIFICATION HAS CHANGED" je po ponovni namestitvi običajno, sicer pa sumljivo. Staro vrstico odstranite šele po preverjanju, z ssh-keygen -R.
  • Pasica z različico je javna; zaščita prihaja iz posodobitev, ne iz skrivanja.

Kviz

1. S čim primerjate prstni odtis, ki ga ssh prikaže ob prvi povezavi?



2. Kaj počne ~/.ssh/known_hosts?



3. VPS ste znova namestili in dobite "REMOTE HOST IDENTIFICATION HAS CHANGED". Kakšen je pravilen vrstni red?



4. Zakaj je pri trust on first use prvo preverjanje tako pomembno?



5. Kaj pokaže pasica z različico strežnika SSH?



Naloga

Naloga Z1.3: Pasica SSH in prstni odtis Vašega strežnika. Vpišite naslov svojega strežnika, različico programske opreme iz pasice (na primer OpenSSH_9.6p1) in prstni odtis ED25519, ki ste ga v konzoli izpisali z ssh-keygen -lf. Program vzpostavi eno povezavo do Vaših vrat SSH, prebere pasico in gostiteljski ključ ter ju primerja. Ne prijavi se.

Naloga Z1.3: Pasica SSH in prstni odtis Vašega strežnika

Ne prijavimo se in ne preizkušamo gesla ali ključa. Najprej pokažite, da je strežnik Vaš: kliknite "Prikažite mojo kodo" in na spletni strežnik svojega imena gostitelja postavite datoteko /.well-known/weboke-cursus-<code>.txt, ki vsebuje samo to kodo. Prenesemo jo neposredno z vsakega naslova IP, ki ga preverjamo (IPv4 in IPv6 ločeno); zapis TXT tukaj ne šteje. Preverjanje prihaja s heavy.webawere.nl (185.158.167.16 in 2a07:ae80:100:0:185:158:167:16), ne z našega spletnega strežnika. Samo za prijavljene udeležence; največ 6 preverjanj na uro na strežnik. Pri tej nalogi vzpostavimo eno povezavo in preberemo samo pasico in ključ strežnika; v Vašem dnevniku ne bo poskusa prijave.





Tega, kar vnesete, in tega, kar najdemo, ne shranjujemo. Vaš brskalnik si zapomni Vaše odgovore in to, ali ste nalogo opravili. Če ste prijavljeni, v Moji tečaji shranimo samo podatek, da ste nalogo (skoraj) pravilno opravili; tudi to lahko tam izbrišete.

Za nadaljnje branje

Trenutek…

Nastavite svoje domene

Za vsako domeno uredite imenske strežnike, povezavo z gostovanjem in kdo bo imetnik.

Nalaganje Vaših domen…