Prejsť na obsah

Nastavenia súborov cookie

Vyberte, aké druhy súborov cookie povolíte. Svoj výber môžete kedykoľvek zmeniť cez Nastavenia súborov cookie v dolnej časti každej stránky. Vyhlásenie o ochrane osobných údajov

Nevyhnutné

Vždy zapnuté

Potrebné na prihlásenie, uchovanie košíka a zapamätanie vašich volieb. Sú vždy zapnuté.

Ktoré súbory cookie?
  • weboke_sessie, weboke_klant, weboke_remember: vaša relácia a trvalé prihlásenie
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazovanie cien s DPH alebo bez DPH
  • wok_cookies: váš výber súborov cookie, 12 mesiacov

Merajú, ktorá reklama vedie k návšteve alebo objednávke, aby sme neplatili za reklamy, ktoré nič neprinášajú.

Ktoré súbory cookie?
  • Google Ads cez Google Tag Manager (_gcl_au, _gcl_aw), najviac 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: ktorý partner vás k nám odporučil (partnerský program), 60 dní

4,6

Krajina a jazyk

Každá krajina má vlastný web s cenami a DPH danej krajiny.

Zobraziť

Prvé prihlásenie cez SSH

Modul 1: Váš prvý server · Čas čítania: 10 minút

Cieľ lekcie: Po tejto lekcii sa po prvý raz prihlásite na svoj server cez SSH, overíte odtlačok servera skôr, než mu začnete dôverovať, a budete vedieť, čo robiť pri varovaní, že sa identita servera zmenila.

Kľúčové pojmy: SSH, klient a server, port 22, banner verzie, host key, odtlačok (SHA256), known_hosts, trust on first use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell a Terminal

Čo je SSH

SSH (Secure Shell) je šifrované spojenie, ktorým server spravujete na diaľku. Píšete na vlastnom počítači a príkazy sa vykonávajú na serveri. Všetko, čo ide po linke, aj vaše heslo, je zašifrované.

Existujú dve strany:

  • SSH klient na vašom počítači: program ssh. V macOS a Linuxe je štandardne k dispozícii. Vo Windows 10 (od verzie 1809) a Windows 11 je klient OpenSSH súčasťou Windows; používate ho v PowerShell alebo vo Windows Terminal. Ak chýba, pridáte ho cez Nastavenia, Voliteľné funkcie, „Klient OpenSSH“. Fungujú aj programy s oknami, napríklad PuTTY, v tomto kurze však používame ssh.
  • SSH server na VPS: program sshd (z OpenSSH). Štandardne počúva na porte 22.

Prihlásenie

Prihlasujete sa používateľským menom a adresou servera:

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

Alebo menom, ak ste ho zadali do DNS (lekcia 7.1):

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

Pri prvom pripojení uvidíte niečo takéto:

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

Toto je najdôležitejší okamih tejto lekcie. Nepíšte naslepo yes.

Host key a odtlačok

Každý SSH server má jeden alebo viac host keys: páry kľúčov, ktorými server preukazuje, kým je. Verejné časti sú na serveri v /etc/ssh/, napríklad /etc/ssh/ssh_host_ed25519_key.pub. Pri každom spojení server ukáže, že má tajnú časť.

Odtlačok je krátke zhrnutie (hash) takého verejného kľúča. OpenSSH štandardne zobrazuje tvar SHA256: SHA256: a za ním 43 znakov.

Otázka "Are you sure you want to continue connecting?" znamená: váš počítač tento server ešte nepozná. Kto zaručí, že komunikujete s vaším VPS, a nie s niekým, kto zachytáva prevádzku? Nikto, pokiaľ odtlačok neporovnáte s dôveryhodným zdrojom.

Týmto zdrojom je konzola vášho poskytovateľa (lekcia 1.2). V nej so serverom nekomunikujete cez sieť. Prihláste sa do konzoly a vypíšte odtlačok:

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

Ak sa presne zhoduje s tým, čo ukazuje klient, napíšte yes. Namiesto yes môžete vložiť aj samotný odtlačok; ssh ho potom porovná za vás. Ak sa líši, zastavte sa a zistite prečo (nesprávna IP adresa, preinštalovaný server alebo niečo vážnejšie).

Dávajte pozor na typ: klient uvádza typ (ED25519, ECDSA alebo RSA). Porovnávajte odtlačok rovnakého typu. Mnohé obrazy (images) vypíšu odtlačky do konzoly aj pri prvom štarte (cloud-init), medzi riadky ako BEGIN SSH HOST KEY FINGERPRINTS.

known_hosts a trust on first use

Keď napíšete yes, uvidíte:

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

Klient uloží kľúč do ~/.ssh/known_hosts (vo Windows C:\Users\<naam>\.ssh\known_hosts). Odteraz ho pri každom spojení automaticky porovnáva. Tento model sa nazýva trust on first use (TOFU, dôvera pri prvom použití): prvý raz ho musíte overiť sami, potom ho stráži klient.

Preto je prvá kontrola taká dôležitá: ak dôverujete nesprávnemu kľúču, klient vás už potom nikdy nevaruje.

Ak sami pracujete na počítači s Debianom alebo Ubuntu, mená v known_hosts sú štandardne zahashované (HashKnownHosts yes v /etc/ssh/ssh_config), takže tam čitateľné IP adresy neuvidíte. Vo Windows a macOS sú v ňom čitateľne. Vyhľadávanie funguje všade takto:

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"

Niekedy uvidíte toto varovanie:

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

Server ukazuje iný kľúč, než aký pozná váš klient. ssh sa potom odmietne pripojiť. Príčiny sú dvojakého druhu:

BežnéPodozrivé
VPS ste preinštalovali (nové host keys)Nič ste nezmenili, a predsa je kľúč iný
IP adresa bola pridelená inému serveruSte pripojení na cudzej sieti Wi-Fi
Host keys ste vedome vymeniliOdtlačok v konzole sa líši od toho, čo teraz vidí klient

Ak existuje bežné vysvetlenie, znova overte odtlačok v konzole a až potom odstráňte starý riadok:

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

Pri ďalšom spojení dostanete opäť otázku ako pri prvom pripojení a znova overíte odtlačok. Nikdy si do nastavení nedávajte StrictHostKeyChecking no, aby ste sa varovania zbavili: vypnete tým presne tú ochranu, o ktorú ide.

Banner verzie

Skôr než sa čokoľvek zašifruje, pošlú si klient a server riadok textu: banner verzie. Ten je viditeľný pre každého na internete. Zobrazíte ho pomocou 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

Server tu oznamuje, aký protokol (2.0) a aký softvér používa. Debian a Ubuntu za to pridávajú verziu balíka. Nie je to tajomstvo, ktoré treba skrývať: útočníci aj tak skúšajú všetko a chránite sa aktualizáciami (modul 4), nie iným bannerom. Užitočné však je, že podľa bannera zvonku vidíte, či váš server naozaj beží na aktualizovanej verzii.

V AlmaLinuxe a Rocky Linuxe

Prihlasovanie a odtlačky fungujú rovnako. Služba sa volá sshd namiesto ssh (systemctl status sshd). Banner neobsahuje názov distribúcie, iba verziu OpenSSH.

Zhrnutie

  • SSH je šifrované spojenie s vaším serverom; ssh je klient, sshd server na porte 22.
  • Pri prvom spojení klient zobrazí odtlačok host key. Porovnajte ho s výstupom ssh-keygen -lf v konzole skôr, než napíšete yes.
  • Klient uloží kľúč do ~/.ssh/known_hosts a odteraz varuje sám (trust on first use).
  • "REMOTE HOST IDENTIFICATION HAS CHANGED" je po preinštalovaní bežné; inak je to podozrivé. Starý riadok odstráňte len po kontrole, pomocou ssh-keygen -R.
  • Banner verzie je verejný; ochranu prinášajú aktualizácie, nie skrývanie.

Kvíz

1. S čím porovnáte odtlačok, ktorý ssh zobrazí pri prvom spojení?



2. Na čo slúži ~/.ssh/known_hosts?



3. Preinštalovali ste VPS a dostávate "REMOTE HOST IDENTIFICATION HAS CHANGED". Aký je správny postup?



4. Prečo je pri trust on first use taká dôležitá prvá kontrola?



5. Čo ukazuje banner verzie SSH servera?



Úloha

Úloha Z1.3: SSH banner a odtlačok vášho servera. Zadajte adresu svojho servera, verziu softvéru z bannera (napríklad OpenSSH_9.6p1) a odtlačok ED25519, ktorý ste v konzole vypísali pomocou ssh-keygen -lf. Program vytvorí jedno spojenie na váš SSH port, prečíta banner a host key a porovná ich. Neprihlasuje sa.

Úloha Z1.3: SSH banner a odtlačok vášho servera

Neprihlasujeme sa a neskúšame žiadne heslo ani kľúč. Najprv preukážte, že server patrí vám: kliknite na "Zobraziť môj kód" a umiestnite súbor /.well-known/weboke-cursus-<code>.txt obsahujúci iba tento kód na webový server vášho hostname. Načítame ho priamo z každej IP adresy, ktorú kontrolujeme (IPv4 a IPv6 zvlášť); TXT záznam sa tu nepočíta. Kontrola prichádza z heavy.webawere.nl (185.158.167.16 a 2a07:ae80:100:0:185:158:167:16), nie z nášho webového servera. Iba pre prihlásených účastníkov kurzu; najviac 6 kontrol za hodinu na server. Pri tejto úlohe vytvoríme jedno spojenie a prečítame iba banner a kľúč servera; vo vašom logu sa neobjaví žiadny pokus o prihlásenie.





Čo vyplníte a čo nájdeme, neukladáme. Váš prehliadač si pamätá vaše odpovede a to, či ste úlohu splnili. Po prihlásení si v sekcii Moje kurzy uchovávame iba to, že úloha bola (takmer) správne vyriešená; aj to tam môžete odstrániť.

Ďalšie čítanie

Chvíľu strpenia…

Nastavte svoje domény

Pri každej doméne nastavte nameservery, prepojenie s hostingom a to, kto bude jej vlastníkom.

Načítavajú sa vaše domény…