Pereiti prie turinio

Slapukų nustatymai

Pasirinkite, kokių rūšių slapukus leidžiate. Pasirinkimą bet kada galite pakeisti per „Slapukų nustatymai“ kiekvieno puslapio apačioje. Privatumo pareiškimas

Būtinieji

Visada įjungti

Reikalingi prisijungti, išsaugoti krepšelį ir įsiminti Jūsų pasirinkimus. Jie visada įjungti.

Kokie slapukai?
  • weboke_sessie, weboke_klant, weboke_remember: Jūsų sesija ir prisijungimo išlaikymas
  • weboke_basket: Jūsų krepšelis
  • wkBtwIncl: kainų rodymas su PVM arba be PVM
  • wok_cookies: Jūsų slapukų pasirinkimas, 12 mėnesių

Matuoja, kuri reklama atveda prie apsilankymo ar užsakymo, kad nemokėtume už neveiksmingas reklamas.

Kokie slapukai?
  • Google Ads per Google Tag Manager (_gcl_au, _gcl_aw), iki 90 dienų
  • OpenAI Ads, reklamos ChatGPT
  • wok_aff: per kurį partnerį atėjote pas mus (partnerių programa), 60 dienų

4,6

Šalis ir kalba

Kiekviena šalis turi savo svetainę su tos šalies kainomis ir PVM.

Peržiūrėti

Pirmasis prisijungimas per SSH

1 modulis: Jūsų pirmasis serveris · Skaitymo laikas: 10 min.

Mokymosi tikslas: Po šios pamokos galėsite pirmą kartą prisijungti prie savo serverio per SSH, patikrinti serverio kontrolinį kodą prieš juo pasitikėdami ir žinosite, ką daryti, kai pasirodo įspėjimas, kad serverio tapatybė pasikeitė.

Pagrindinės sąvokos: SSH, klientas ir serveris, 22 prievadas, versijos baneris, host key, kontrolinis kodas (SHA256), known_hosts, trust on first use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell ir Terminal

Kas yra SSH

SSH (Secure Shell) yra šifruotas ryšys, kuriuo serverį valdote nuotoliniu būdu. Rašote savo kompiuteryje, o komandos vykdomos serveryje. Viskas, kas perduodama ryšiu, taip pat ir Jūsų slaptažodis, yra užšifruota.

Yra dvi pusės:

  • SSH klientas Jūsų kompiuteryje: programa ssh. macOS ir Linux sistemose ji įdiegta iš karto. Windows 10 (nuo 1809 versijos) ir Windows 11 sistemose OpenSSH klientas yra Windows dalis; jį naudojate per PowerShell arba Windows Terminal. Jei jo nėra, jį galite pridėti per Parametrai, Pasirinktinės funkcijos, "OpenSSH klientas". Programos su langais, pavyzdžiui, PuTTY, taip pat veikia, tačiau šiame kurse naudojame ssh.
  • SSH serveris VPS serveryje: programa sshd (iš OpenSSH). Pagal numatytuosius nustatymus ji klausosi 22 prievado.

Prisijungimas

Prisijungiate naudotojo vardu ir serverio adresu:

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

Arba vardu, jei jį įrašėte į DNS (pamoka 7.1):

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

Pirmą kartą pamatysite maždaug tai:

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

Tai svarbiausia šios pamokos akimirka. Nerašykite yes aklai.

Host key ir kontrolinis kodas

Kiekvienas SSH serveris turi vieną ar daugiau host keys: raktų porų, kuriomis serveris įrodo, kas jis yra. Viešosios jų dalys serveryje saugomos /etc/ssh/, pavyzdžiui, /etc/ssh/ssh_host_ed25519_key.pub. Kiekvieno ryšio metu serveris parodo, kad turi slaptąją dalį.

Kontrolinis kodas (fingerprint) yra trumpa tokio viešojo rakto santrauka (maiša, hash). OpenSSH pagal numatytuosius nustatymus rodo SHA256 formą: SHA256: ir po jo 43 simbolius.

Klausimas "Are you sure you want to continue connecting?" reiškia: Jūsų kompiuteris šio serverio dar nepažįsta. Kas garantuoja, kad bendraujate su savo VPS, o ne su kuo nors, kas perima srautą? Niekas, nebent pats palyginate kontrolinį kodą su patikimu šaltiniu.

Tas šaltinis yra Jūsų paslaugų teikėjo konsolė (pamoka 1.2). Joje su serveriu bendraujate ne per tinklą. Prisijunkite prie konsolės ir gaukite kontrolinį kodą:

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

Jei jis tiksliai sutampa su tuo, ką rodo klientas, rašykite yes. Vietoj yes taip pat galite įklijuoti patį kontrolinį kodą; tada ssh jį palygins už Jus. Jei jis skiriasi, sustokite ir išsiaiškinkite kodėl (neteisingas IP adresas, iš naujo įdiegtas serveris arba kas nors rimčiau).

Atkreipkite dėmesį į tipą: klientas nurodo tipą (ED25519, ECDSA arba RSA). Lyginkite to paties tipo kontrolinį kodą. Daugelis atvaizdų (images) pirmojo paleidimo metu kontrolinius kodus taip pat parodo konsolėje (cloud-init), tarp eilučių, tokių kaip BEGIN SSH HOST KEY FINGERPRINTS.

known_hosts ir trust on first use

Kai parašote yes, pamatysite:

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

Klientas išsaugo raktą faile ~/.ssh/known_hosts (Windows sistemoje C:\Users\<naam>\.ssh\known_hosts). Nuo šiol jis kiekvieno ryšio metu lygina automatiškai. Šis modelis vadinamas trust on first use (TOFU, pasitikėjimas pirmą kartą): pirmą kartą turite patikrinti patys, vėliau tai stebi klientas.

Todėl tas pirmasis patikrinimas toks svarbus: jei patikėsite neteisingu raktu, klientas vėliau niekada nebeįspės.

Jei pats dirbate kompiuteriu su Debian arba Ubuntu, vardai faile known_hosts pagal numatytuosius nustatymus yra užmaišyti (HashKnownHosts yes faile /etc/ssh/ssh_config), todėl ten neįskaitomų IP adresų nepamatysite. Windows ir macOS sistemose jie įrašyti įskaitomai. Ieškoti visur galima taip:

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"

Kartais pamatysite tokį įspėjimą:

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

Serveris rodo kitą raktą, nei pažįsta Jūsų klientas. Tada ssh atsisako jungtis. Priežastys būna dviejų rūšių:

ĮprastaĮtartina
VPS įdiegėte iš naujo (nauji host keys)Nieko nekeitėte, tačiau raktas vis tiek kitas
IP adresas suteiktas kitam serveriuiEsate prisijungę prie svetimo Wi-Fi tinklo
Host keys pakeitėte sąmoningaiKontrolinis kodas konsolėje skiriasi nuo to, ką dabar mato klientas

Jei yra įprastas paaiškinimas, dar kartą patikrinkite kontrolinį kodą konsolėje ir tik tada pašalinkite seną eilutę:

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

Kito ryšio metu vėl gausite pirmojo karto klausimą ir vėl patikrinsite. Niekada nenustatykite StrictHostKeyChecking no, kad atsikratytumėte įspėjimo: taip išjungtumėte būtent tą apsaugą, apie kurią ir kalbama.

Versijos baneris

Prieš pradedant ką nors šifruoti, klientas ir serveris nusiunčia vienas kitam teksto eilutę: versijos banerį. Jis matomas visiems internete. Jį pamatysite su 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

Čia serveris nurodo, kokį protokolą (2.0) ir kokią programinę įrangą naudoja. Debian ir Ubuntu prie jo prideda paketo versiją. Tai ne paslaptis, kurią reikėtų slėpti: užpuolikai vis tiek bando viską, o apsisaugote atnaujinimais (modulis 4), ne kitokiu baneriu. Tačiau tai naudinga: iš banerio iš išorės matote, ar Jūsų serveris tikrai veikia su atnaujinta versija.

AlmaLinux ir Rocky Linux sistemose

Prisijungimas ir kontroliniai kodai veikia taip pat. Paslauga vadinasi sshd, o ne ssh (systemctl status sshd). Baneryje nėra distribucijos pavadinimo, tik OpenSSH versija.

Santrauka

  • SSH yra šifruotas ryšys su Jūsų serveriu; ssh yra klientas, sshd yra serveris 22 prievade.
  • Pirmojo ryšio metu klientas parodo host key kontrolinį kodą. Prieš rašydami yes, palyginkite jį su komandos ssh-keygen -lf išvestimi konsolėje.
  • Klientas išsaugo raktą faile ~/.ssh/known_hosts ir toliau įspėja pats (trust on first use).
  • "REMOTE HOST IDENTIFICATION HAS CHANGED" po pakartotinio įdiegimo yra įprasta; kitu atveju tai įtartina. Seną eilutę šalinkite tik po patikrinimo, su ssh-keygen -R.
  • Versijos baneris yra viešas; apsauga ateina iš atnaujinimų, ne iš slėpimo.

Testas (quiz)

1. Su kuo lyginate kontrolinį kodą, kurį ssh parodo pirmojo ryšio metu?



2. Ką atlieka ~/.ssh/known_hosts?



3. VPS įdiegėte iš naujo ir gaunate "REMOTE HOST IDENTIFICATION HAS CHANGED". Kokia teisinga veiksmų seka?



4. Kodėl taikant trust on first use pirmasis patikrinimas toks svarbus?



5. Ką rodo SSH serverio versijos baneris?



Užduotis

Užduotis Z1.3: Jūsų serverio SSH banner ir kontrolinis kodas (fingerprint). Įveskite savo serverio adresą, programinės įrangos versiją iš banerio (pavyzdžiui, OpenSSH_9.6p1) ir ED25519 kontrolinį kodą, kurį gavote konsolėje su ssh-keygen -lf. Programa vieną kartą prisijungia prie Jūsų SSH prievado, nuskaito banerį ir host key, tada palygina. Ji neprisijungia prie paskyros.

Užduotis Z1.3: Jūsų serverio SSH banner ir kontrolinis kodas (fingerprint)

Mes neprisijungiame ir nebandome jokio slaptažodžio ar rakto. Pirmiausia parodykite, kad serveris priklauso Jums: spustelėkite „Rodyti mano kodą“ ir savo prieglobos vardo žiniatinklio serveryje sukurkite failą /.well-known/weboke-cursus-<code>.txt, kuriame būtų tik tas kodas. Jį parsisiunčiame tiesiogiai iš kiekvieno tikrinamo IP adreso (IPv4 ir IPv6 atskirai); TXT įrašas čia netinka. Patikra atliekama iš heavy.webawere.nl (185.158.167.16 ir 2a07:ae80:100:0:185:158:167:16), o ne iš mūsų žiniatinklio serverio. Tik prisijungusiems kursų dalyviams; vienam serveriui ne daugiau kaip 6 patikros per valandą. Šioje užduotyje užmezgame vieną ryšį ir nuskaitome tik serverio banner ir raktą; Jūsų žurnale neatsiras jokio bandymo prisijungti.





Ko, ką įvedate ir ką randame, nesaugome. Jūsų naršyklė atsimena Jūsų atsakymus ir tai, ar užduotį atlikote. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotis buvo atlikta (ar beveik atlikta); ten tai galite ir pašalinti.

Skaitykite daugiau

Akimirką…

Nustatykite domenus

Kiekvienam domenui nustatykite vardų serverius, susiejimą su talpinimu ir tai, kas taps valdytoju.

Įkeliami Jūsų domenai…