Skip to content

SSH upravljanje

Učni list 2: Vzpostavitev SSH storitve za oddaljeno upravljanje

Namen vaje

Tvoja naloga je, da namestiš, zaženeš in preveriš SSH strežnik ter razumeš, kako deluje varen oddaljeni dostop do strežnika.

Kako brati mikro razlage
  • razčlenitev sintakse — kaj pomeni posamezni del ukaza
  • kaj se zgodi po pritisku Enter — neposredna posledica v sistemu ali omrežju
  • na kaj ukaz vpliva — datoteka, proces ali port
  • kaj pričakuješ kot rezultat — konkretna kontrolna točka

Cilj je, da ne ostaneš na ravni prepisal sem ukaz, ampak prideš do ravni vem, zakaj sem ga izvedel in kaj moram po njem preveriti.

Cilji
  • znaš namestiti SSH strežnik
  • razumeš razliko med SSH klientom in SSH strežnikom
  • znaš preveriti, ali servis posluša na pravem portu
  • znaš se povezati s klienta na strežnik
  • razumeš prednost prijave s ključi pred geslom
Potrebna oprema in predznanje
  • uspešno zaključena priprava okolja
  • klient doseže strežnik na naslovu 192.168.56.10
  • osnovni ukazi: systemctl, ss, journalctl, ssh
Teorija v ozadju

SSH pomeni Secure Shell. Gre za protokol, ki omogoča varen oddaljeni dostop, izvajanje ukazov in prenos datotek. Privzeto posluša na TCP portu 22.

SSH je za sistemca to, kar je volan za avto. Brez njega lahko strežnik sicer obstaja, a ga je mučno upravljati. Posebej na sistemih brez grafičnega vmesnika je SSH glavni delovni kanal.

Pomembno je razlikovati med klientom in strežnikom. Ukaz ssh na klientu samo kliče storitev. Storitev pa mora na strežniku dejansko teči, sicer kličeš v prazno.

Pri sodobni rabi je priporočljivo uporabljati prijavo z javnim ključem. Tako se izogneš ponavljajočemu ugibanju gesel in izboljšaš avtomatizacijo.

Na kaj je treba paziti
  • Ne onemogoči prijave z geslom, dokler nisi preveril, da prijava s ključem res deluje.
  • Če vklopiš požarni zid, moraš prej dovoliti SSH, sicer si lahko sam elegantno zabrišeš dostop do strežnika.
  • Prvo opozorilo o prstnem odtisu strežnika je normalno. Strašljivo je samo prvič, potem je to rutina.

Kako brati to vajo

Vsak korak ima tri plasti: kaj narediš, kaj ukaz pomeni in kaj se v ozadju zgodi v sistemu ali omrežju. Cilj ni slepo kopiranje ukazov, ampak razumevanje, zakaj posamezni korak obstaja.

1. Posodobi seznam paketov in namesti SSH strežnik

Kaj narediš

Na strežniku posodobi podatke o paketih in namesti openssh-server.

Ukazi

sudo apt update
sudo apt install openssh-server -y
Mikro razlaga ukazov

Ukaz 1: sudo apt update

  • Razčlenitev sintakse:
  • sudo ukaz izvede z administratorskimi pravicami.
  • apt je upravljalnik paketov na Debian/Ubuntu sistemih.
  • update ne namešča programov; samo osveži lokalni seznam paketov iz repozitorijev.
  • Kaj se zgodi po pritisku Enter: Sistem osveži lokalne informacije o paketih. Ni še spremembe storitev, ampak priprava na korektno namestitev ali posodobitev.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo apt install openssh-server -y

  • Razčlenitev sintakse:
  • install namesti navedene pakete: openssh-server.
  • -y samodejno potrdi namestitev.
  • Kaj se zgodi po pritisku Enter: Na sistem se namesti nov paket oziroma storitev. Ob tem se pogosto ustvarijo konfiguracijske datoteke, sistemska enota systemd in včasih se servis zažene že sam.
  • Na kaj ta ukaz vpliva:
  • Procesi/storitve: ssh
  • Porti: 22/TCP
  • Kaj pričakuješ kot rezultat: Paket se namesti brez napake, na koncu pa ni vrstice tipa E: ali failed.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

apt update osveži seznam razpoložljivih paketov iz repozitorijev. apt install openssh-server pa na sistem namesti program sshd, sistemsko enoto in privzete konfiguracijske datoteke.

Kaj se dogaja v ozadju

Ko je paket nameščen, dobi sistem nov proces, ki lahko posluša omrežni port. To je pomemben miselni preskok: servis ni “ukaz”, servis je trajno delujoč proces v ozadju.

Kaj moraš opaziti

Po namestitvi se običajno servis sam zažene. Sistem izpiše, kateri paketi so bili dodani.

Če ne dela, preveri

  • Če apt update ne deluje, preveri NAT povezavo ali DNS delovanje za internetne domene.
  • Če se paket ne najde, preveri, ali uporabljaš Debian/Ubuntu sistem.
2. Preveri stanje servisa

Kaj narediš

Preveri, ali SSH storitev teče in ali je nastavljena za samodejni zagon.

Ukazi

sudo systemctl status ssh
sudo systemctl enable --now ssh
Mikro razlaga ukazov

Ukaz 1: sudo systemctl status ssh

  • Razčlenitev sintakse:
  • systemctl upravlja storitve v systemd.
  • status ssh pokaže, ali je enota ssh aktivna, kdaj je bila zagnana in ali je javila napake.
  • Kaj se zgodi po pritisku Enter: Ne spreminja sistema, ampak ti da opazovalno točko: ali storitev teče, od kdaj teče in ali javlja napake.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: V izpisu iščeš stanje active (running) ali vsaj jasen razlog, zakaj storitev ni aktivna.

Ukaz 2: sudo systemctl enable --now ssh

  • Razčlenitev sintakse:
  • enable nastavi, da se enota ssh zažene tudi ob naslednjem zagonu sistema.
  • --now pomeni, da se enota hkrati zažene še takoj.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

systemctl status ssh pokaže, ali je enota aktivna, kdaj je bila zagnana in ali je javila napake. enable --now pomeni: omogoči ob zagonu sistema in jo zaženi takoj.

Kaj se dogaja v ozadju

Na sodobnih Linux sistemih servis upravlja systemd. To je orodje, ki skrbi za zaganjanje, ustavljanje, ponovne zagone in odvisnosti med storitvami.

Kaj moraš opaziti

Pričakuješ stanje active (running).

Če ne dela, preveri

  • Če status kaže failed, preberi zadnje vrstice izpisa ali uporabi journalctl -u ssh.
  • Če enote ssh ni, paket verjetno ni pravilno nameščen.
3. Preveri, ali servis posluša na portu 22

Kaj narediš

Poglej, ali proces sshd posluša na pravem portu.

Ukazi

ss -tulpen | grep :22
Mikro razlaga ukazov

Ukaz 1: ss -tulpen | grep :22

  • Razčlenitev sintakse:
  • ss pokaže odprte mrežne vtičnice.
  • -t prikaže TCP, -u UDP, -l poslušajoče vtičnice, -p procese, -e dodatne podatke, -n numerične porte brez pretvarjanja v imena.
  • grep :22 izloči vrstice za port 22.
  • Kaj se zgodi po pritisku Enter: Pregleduješ stanje mrežnih vtičnic v jedru. Tako preveriš, ali je storitev res odprla pričakovani port.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: V izpisu vidiš pričakovani port in pravilni proces, ki posluša promet.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

Ukaz ss prikaže odprte TCP/UDP porte in procese, ki so nanje vezani. To ni več “verjamem, da servis dela”, ampak dejanski dokaz, da sistem posluša promet na določeni vtičnici.

Kaj se dogaja v ozadju

Ko strežnik posluša na portu 22/TCP, to pomeni, da je v jedru odprta mrežna vtičnica, ki sprejema povezave za ta servis.

Kaj moraš opaziti

V izpisu moraš videti port 22 in proces sshd.

Če ne dela, preveri

  • Če je servis aktiven, a porta ni v izpisu, je morda konfiguriran na drug port ali pa se ni pravilno zagnal.
4. Preglej osnovne varnostne nastavitve SSH

Kaj narediš

Odpri konfiguracijsko datoteko in preveri ključne nastavitve.

Ukazi

sudo nano /etc/ssh/sshd_config
Mikro razlaga ukazov

Ukaz 1: sudo nano /etc/ssh/sshd_config

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/ssh/sshd_config. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril.
  • Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
  • Na kaj ta ukaz vpliva:
  • Datoteke: /etc/ssh/sshd_config
  • Procesi/storitve: ssh
  • Porti: 22/TCP
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Primer konfiguracije

PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes

Kaj ta korak pomeni

PermitRootLogin no prepreči neposredno prijavo uporabnika root. PasswordAuthentication yes začasno pusti prijavo z geslom, dokler ne pripraviš ključev. PubkeyAuthentication yes omogoči prijavo z javnim ključem.

Kaj se dogaja v ozadju

SSH ob vzpostavitvi povezave preveri, katere metode overjanja so dovoljene. Te vrstice določajo, ali bo sprejel geslo, ključ ali neposredno root prijavo.

Kaj moraš opaziti

Po spremembi konfiguracije datoteko shrani, nato servis ponovno zaženi.

Če ne dela, preveri

  • Če narediš tipkarsko napako v konfiguraciji, se servis po restartu lahko ne zažene. Vedno spremljaj systemctl status ssh.
5. Ponovno zaženi servis po spremembi konfiguracije

Kaj narediš

Naloži novo konfiguracijo SSH.

Ukazi

sudo systemctl restart ssh
sudo systemctl status ssh
Mikro razlaga ukazov

Ukaz 1: sudo systemctl restart ssh

  • Razčlenitev sintakse:
  • restart ustavi in ponovno zažene enoto ssh. To je potrebno po spremembi konfiguracije.
  • Kaj se zgodi po pritisku Enter: Proces storitve ponovno prebere konfiguracijo. Če je konfiguracija napačna, se storitev lahko ne zažene ali ostane v stanju napake.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo systemctl status ssh

  • Razčlenitev sintakse:
  • systemctl upravlja storitve v systemd.
  • status ssh pokaže, ali je enota ssh aktivna, kdaj je bila zagnana in ali je javila napake.
  • Kaj se zgodi po pritisku Enter: Ne spreminja sistema, ampak ti da opazovalno točko: ali storitev teče, od kdaj teče in ali javlja napake.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: V izpisu iščeš stanje active (running) ali vsaj jasen razlog, zakaj storitev ni aktivna.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

Dokler servisa ne zaženeš znova ali ne narediš reload, nova konfiguracija živi samo v datoteki. Servis še vedno uporablja staro stanje v pomnilniku.

Kaj se dogaja v ozadju

Proces sshd prebere konfiguracijo ob zagonu oziroma ob zahtevi za ponovno nalaganje.

Kaj moraš opaziti

Status mora ostati active (running).

Če ne dela, preveri

  • Če po restartu servis pade, takoj preglej status in dnevnike. Ne ugibaj.
6. S klienta preveri, ali dosežeš strežnik

Kaj narediš

Na klientu najprej preveri IP povezljivost, nato poskusi SSH prijavo.

Ukazi

ping -c 4 192.168.56.10
ssh uporabnik@192.168.56.10
Mikro razlaga ukazov

Ukaz 1: ping -c 4 192.168.56.10

  • Razčlenitev sintakse:
  • ping pošilja ICMP echo zahtevke na cilj 192.168.56.10.
  • -c 4 pomeni, da pošlje natančno 4 pakete in se nato ustavi.
  • Kaj se zgodi po pritisku Enter: Pošljejo se ICMP paketi. S tem preverjaš osnovno dosegljivost med napravami ali pravilno delovanje imen v DNS.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Prejmeš odgovore brez 100 % izgube paketov in z razumno nizkim časom v laboratorijskem okolju.

Ukaz 2: ssh uporabnik@192.168.56.10

  • Razčlenitev sintakse:
  • ssh odpre šifrirano sejo do strežnika 192.168.56.10.
  • Uporabniško ime za prijavo je uporabnik.
  • Kaj se zgodi po pritisku Enter: Vzpostavi se šifrirana TCP seja do strežnika. Pri prvi povezavi se preverja identiteta strežnika, nato pa sledi avtentikacija uporabnika.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Prideš do prijavnega poziva ali neposredno v oddaljeno lupino. Pri prvi prijavi se prikaže opozorilo o prstnem odtisu strežnika.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

Najprej preveriš omrežje, šele nato aplikacijski servis. To je zdrava diagnostika: od nižje plasti proti višji. Če ping ne dela, je popolnoma nesmiselno ugibati o SSH konfiguraciji.

Kaj se dogaja v ozadju

Ko zaženeš ssh uporabnik@strežnik, klient odpre TCP povezavo na port 22, preveri identiteto strežnika, nato izvede izmenjavo ključev in šifriranje.

Kaj moraš opaziti

Pri prvi prijavi bo sistem vprašal za potrditev prstnega odtisa strežnika. To sprejmi, nato vnesi geslo uporabnika na strežniku.

Če ne dela, preveri

  • Če dobiš Connection refused, port ni odprt ali servis ne teče.
  • Če dobiš No route to host ali časovni potek, je težava v omrežju ali požarnem zidu.
7. Ustvari datoteko v oddaljeni SSH seji

Kaj narediš

Po uspešni prijavi na strežniku ustvari testno datoteko.

Ukazi

mkdir -p ~/lab
echo "SSH povezava deluje" > ~/lab/test.txt
cat ~/lab/test.txt
Mikro razlaga ukazov

Ukaz 1: mkdir -p ~/lab

  • Razčlenitev sintakse:
  • mkdir ustvari mapo.
  • -p poskrbi, da se ustvarijo tudi manjkajoče nadrejene mape in da ukaz ne pade, če mapa že obstaja.
  • Ustvarja se pot ~/lab.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: echo "SSH povezava deluje" > ~/lab/test.txt

  • Razčlenitev sintakse:
  • echo izpiše besedilo SSH povezava deluje.
  • Preusmeritev > prepiše ciljno datoteko ~/lab/test.txt z novim besedilom.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 3: cat ~/lab/test.txt

  • Razčlenitev sintakse:
  • cat prebere in izpiše vsebino datoteke ~/lab/test.txt na terminal.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

Namen ni v datoteki sami, ampak v dokazu, da oddaljena seja res deluje in da ne gre samo za uspešen login banner.

Kaj se dogaja v ozadju

Vsak ukaz teče na strežniku, čeprav ga vnašaš s klienta. To je bistvo oddaljene administracije: terminal je pri tebi, izvajanje pa tam.

Kaj moraš opaziti

Izpis cat mora prikazati vsebino datoteke.

Če ne dela, preveri

  • Če ukazi tečejo, a ne moreš pisati v direktorij, preveri uporabniške pravice.
8. Preglej dnevnike SSH prijav

Kaj narediš

Na strežniku preglej nedavne zapise za SSH.

Ukazi

sudo journalctl -u ssh --since "10 minutes ago"
Mikro razlaga ukazov

Ukaz 1: sudo journalctl -u ssh --since "10 minutes ago"

  • Razčlenitev sintakse:
  • journalctl bere sistemske dnevnike.
  • -u ssh filtrira zapise za enoto ssh.
  • --since "10 minutes ago" pokaže samo novejše zapise od navedenega časa dalje.
  • Kaj se zgodi po pritisku Enter: Bereš dnevniške zapise, zato se stanje sistema ne spremeni. To je diagnostični korak.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

Dnevniki povedo, kdo se je prijavil, kdaj in ali so bili neuspešni poskusi. To je ključno pri diagnostiki in varnosti.

Kaj se dogaja v ozadju

Servisi zapisujejo pomembne dogodke v journald oziroma sistemske dnevnike. Sistemec brez logov je kot kirurg brez luči.

Kaj moraš opaziti

Poišči uspešno prijavo, IP klienta in morebitne neuspešne poskuse.

Če ne dela, preveri

  • Če zapisa ni, preveri, ali si gledal pravi časovni interval.
9. Na klientu ustvari par ključev in jih prenesi na strežnik

Kaj narediš

Pripravi prijavo z javnim ključem.

Ukazi

ssh-keygen -t ed25519
ssh-copy-id uporabnik@192.168.56.10
ssh uporabnik@192.168.56.10
Mikro razlaga ukazov

Ukaz 1: ssh-keygen -t ed25519

  • Razčlenitev sintakse:
  • ssh-keygen ustvari par ključev za SSH.
  • -t ed25519 določi vrsto ključa; ed25519 je sodobna in varna izbira.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Datoteke: ~/.ssh/id_ed25519, ~/.ssh/id_ed25519.pub
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: ssh-copy-id uporabnik@192.168.56.10

  • Razčlenitev sintakse:
  • Ukaz prenese javni ključ uporabnika na strežnik 192.168.56.10.
  • Ključ bo dodan v ~/.ssh/authorized_keys za uporabnika uporabnik.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Datoteke: ~/.ssh/authorized_keys
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 3: ssh uporabnik@192.168.56.10

  • Razčlenitev sintakse:
  • ssh odpre šifrirano sejo do strežnika 192.168.56.10.
  • Uporabniško ime za prijavo je uporabnik.
  • Kaj se zgodi po pritisku Enter: Vzpostavi se šifrirana TCP seja do strežnika. Pri prvi povezavi se preverja identiteta strežnika, nato pa sledi avtentikacija uporabnika.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Prideš do prijavnega poziva ali neposredno v oddaljeno lupino. Pri prvi prijavi se prikaže opozorilo o prstnem odtisu strežnika.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

ssh-keygen ustvari zasebni in javni ključ. ssh-copy-id prenese javni ključ v ~/.ssh/authorized_keys na strežniku. Ob naslednji prijavi klient dokaže identiteto z zasebnim ključem.

Kaj se dogaja v ozadju

Pri tej metodi geslo ni glavni dokaz identitete. Klient podpiše izziv, strežnik pa preveri podpis z javnim ključem. Zasebni ključ ostane samo na klientu.

Kaj moraš opaziti

Po uspešnem kopiranju ključev se prijava izvede brez vnosa sistemskega gesla strežnika ali pa samo z geslom za ključ, če si ga nastavil.

Če ne dela, preveri

  • Če ssh-copy-id ne deluje, preveri, ali se z geslom še vedno lahko prijaviš.
  • Če je domači imenik ali .ssh mapa napačno zaščitena, bo strežnik ključ ignoriral.
10. Šele zdaj po želji onemogoči prijavo z geslom

Kaj narediš

Ko potrdiš, da ključi delujejo, lahko povečaš varnost z izklopom prijave z geslom.

Ukazi

sudo nano /etc/ssh/sshd_config
sudo systemctl restart ssh
Mikro razlaga ukazov

Ukaz 1: sudo nano /etc/ssh/sshd_config

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/ssh/sshd_config. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril.
  • Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
  • Na kaj ta ukaz vpliva:
  • Datoteke: /etc/ssh/sshd_config
  • Procesi/storitve: ssh
  • Porti: 22/TCP
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo systemctl restart ssh

  • Razčlenitev sintakse:
  • restart ustavi in ponovno zažene enoto ssh. To je potrebno po spremembi konfiguracije.
  • Kaj se zgodi po pritisku Enter: Proces storitve ponovno prebere konfiguracijo. Če je konfiguracija napačna, se storitev lahko ne zažene ali ostane v stanju napake.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Primer konfiguracije

PasswordAuthentication no

Preden shraniš spremembo, naredi hiter varnostni preizkus

  • odpri še en terminal in obstoječe SSH seje še ne zapiraj
  • v novem terminalu preveri, ali se z ukazom ssh uporabnik@192.168.56.10 prijaviš brez gesla računa na strežniku
  • po prijavi zaženi whoami in preveri, ali si res prijavljen kot pravi uporabnik
  • šele ko ta prijava uspe, shrani PasswordAuthentication no in restartaj servis

Kaj ta korak pomeni

Ta sprememba zmanjša napadalno površino, ker prepreči ugibanje gesel prek omrežja. Ampak samo, če imaš rezervno pot noter — torej delujoč ključ.

Kaj se dogaja v ozadju

SSH bo po tej spremembi pri overjanju preskočil metodo gesla in sprejemal le dovoljene alternative, npr. ključe.

Kaj moraš opaziti

Prijava s ključem še vedno deluje. Prijava samo z geslom pa ne več.

Če ne dela, preveri

  • Če si se zaklenil ven, uporabi konzolo VirtualBox in popravi konfiguracijo lokalno.
Preverjanje delovanja
  • [ ] paket openssh-server je nameščen
  • [ ] servis ssh teče in je omogočen ob zagonu
  • [ ] port 22/TCP posluša
  • [ ] s klienta se je mogoče prijaviti na strežnik
  • [ ] znaš pokazati razliko med prijavo z geslom in s ključem
Vprašanja za razmislek
  1. Zakaj je SSH varnejši od Telneta?
  2. Kaj je razlika med SSH klientom in SSH strežnikom?
  3. Zakaj prijava z javnim ključem praviloma velja za varnejšo?
  4. Kaj pomeni napaka Connection refused?
Dodatni izziv

Spremeni SSH port na 2222, znova naloži servis in se poveži s klienta z ukazom ssh -p 2222 uporabnik@192.168.56.10. Nato razloži, zakaj to ni čudežna varnostna rešitev, ampak zgolj manjša ovira.

Mini povzetek

Po tej vaji moraš znati na kratko razložiti, kaj je vloga servisa vzpostavitev ssh storitve za oddaljeno upravljanje v omrežju, kateri proces ali konfiguracija ga omogoča in kako ga preverimo s klienta.