Preskoči na vsebino
BeoHosting
BeoHosting
Tehnično

Kako uporabljati SSH za upravljanje strežnika

BeoHosting Ekipa··12 min branja branja
Kako uporabljati SSH za upravljanje strežnika

Kaj je SSH in zakaj je pomemben

SSH (Secure Shell) je omrežni protokol, ki omogoča varno komunikacijo med dvema računalnikoma prek nezavarovanega omrežja. V kontekstu spletnega gostovanja vam SSH omogoča, da se povežete s svojim strežnikom in ga upravljate prek ukazne vrstice - nameščate programsko opremo, urejate konfiguracijske datoteke, ponovno zaganjate storitve, pregledujete dnevnike (loge) in opravljate vsa skrbniška opravila.

Pred SSH so skrbniki uporabljali protokol Telnet, ki je vse podatke (vključno z gesli) pošiljal v nešifrirani obliki. SSH je nadomestil Telnet tako, da je uvedel šifriranje celotne komunikacije, kar pomeni, da nihče, ki prisluškuje omrežnemu prometu, ne more videti, kaj počnete na strežniku, ali ukrasti vaših poverilnic.

SSH deluje po načelu arhitekture odjemalec-strežnik. Vaš računalnik (odjemalec) zažene program odjemalca SSH, ki se poveže s strežnikom SSH (daemon), ki teče na oddaljenem strežniku, običajno na vratih 22. Po avtentikaciji dobite dostop do ukazne vrstice strežnika, kot da bi sedeli neposredno pred njim.

Odjemalci SSH

Za povezavo s strežnikom prek SSH potrebujete program odjemalca SSH na svojem računalniku.

Linux in macOS - Terminal

Linux in macOS imata vgrajen odjemalec SSH. Odprite aplikacijo Terminal in uporabite ukaz: ssh uporabnik@ip-naslov-strežnika. Na primer: ssh root@185.210.45.67. Sistem vas bo vprašal za geslo (ali uporabil ključ SSH, če je konfiguriran). Po uspešni avtentikaciji boste videli ukazni poziv strežnika in lahko začnete z delom.

Windows - PuTTY

PuTTY je najpopularnejši brezplačni odjemalec SSH za Windows. Prenesite ga z uradnega spletnega mesta (putty.org) in ga zaženite. V polje "Host Name" vnesite naslov IP strežnika, vrata pustite na 22, izberite "SSH" kot vrsto povezave in kliknite "Open". Pojavilo se bo okno terminala s pozivom za uporabniško ime in geslo.

Windows 10/11 - vgrajen SSH

Novejše različice sistema Windows (10 in 11) imajo vgrajen odjemalec OpenSSH. Odprite PowerShell ali Command Prompt in uporabite isti ukaz ssh kot v Linuxu. To je enostavnejši pristop od PuTTY-ja, saj ne zahteva namestitve dodatne programske opreme in uporablja enak vmesnik kot Linux/macOS.

Napredni odjemalci

Za uporabnike, ki vsakodnevno delajo z več strežniki, napredni odjemalci, kot so Termius, MobaXterm ali Royal TSX, ponujajo dodatne funkcionalnosti: shranjevanje povezav, datotečni upravitelj SFTP, zavihke za več sej, upravitelja izrezkov (snippet) in integracijo z oblačnimi platformami.

Osnovna konfiguracija SSH

Pravilna konfiguracija povezav SSH vam prihrani čas in poveča varnost.

Konfiguracijska datoteka SSH

V Linuxu in macOS lahko ustvarite datoteko ~/.ssh/config, ki shrani nastavitve za vaše strežnike. Namesto da bi vsakič vtipkali celoten ukaz z naslovom IP, uporabniškim imenom in vrati, lahko določite vzdevke (alias). Na primer, lahko določite vzdevek "mojstreznik" s parametri Host, HostName (naslov IP), User (uporabniško ime), Port in IdentityFile (pot do ključa SSH). Potem je dovolj, da vtipkate ssh mojstreznik, in vse se bo samodejno uporabilo.

Sprememba privzetih vrat

SSH privzeto uporablja vrata 22. Sprememba na druga vrata (na primer 2222 ali kakšna druga nestandardna vrata) zmanjša število avtomatiziranih napadov, saj večina botov pregleduje samo vrata 22. To ni prava varnostna mera (security through obscurity), vendar učinkovito zmanjša "šum" v dnevnikih. Vrata spremenite v datoteki /etc/ssh/sshd_config na strežniku.

Avtentikacija s ključem SSH

Avtentikacija s ključem je varnejša in praktičnejša od uporabe gesel. Namesto da bi si vsakič zapomnili in vtipkali geslo, uporabljate par kriptografskih ključev.

Kako deluje

Par ključev SSH je sestavljen iz zasebnega ključa (ki ostane na vašem računalniku in se nikoli ne deli) in javnega ključa (ki se namesti na strežnik). Ko se povezujete, strežnik pošlje izziv, ki ga lahko reši le lastnik zasebnega ključa. Vaš odjemalec SSH uporabi zasebni ključ za podpis, strežnik podpis preveri z javnim ključem in - če se ujemata - je avtentikacija uspešna. Geslo se nikoli ne prenese prek omrežja.

Ustvarjanje ključa

V Linuxu in macOS uporabite ukaz ssh-keygen za ustvarjanje ključa. Priporočamo algoritem Ed25519, ki je sodoben, hiter in varen. Ukaz vas bo vprašal, kam naj shrani ključ (privzeto ~/.ssh/id_ed25519) in ali želite geselno frazo (passphrase - dodatno geslo za zaščito ključa, priporočeno). Ustvarili se bosta dve datoteki: zasebni ključ in javni ključ s končnico .pub.

Namestitev javnega ključa na strežnik

Javni ključ je treba kopirati na strežnik v datoteko ~/.ssh/authorized_keys uporabnika, s katerim se povezujete. Najlažji način je ukaz ssh-copy-id, ki samodejno kopira vaš javni ključ na strežnik. Druga možnost je, da vsebino datoteke .pub ročno dodate v datoteko authorized_keys na strežniku.

Izklop gesla

Ko potrdite, da ključ SSH deluje, je priporočljivo izklopiti avtentikacijo z geslom na strežniku, tako da uredite datoteko sshd_config in nastavite PasswordAuthentication na no. To dramatično poveča varnost, saj boti ne morejo ugibati gesla - edini način dostopa je posedovanje zasebnega ključa.

Najpomembnejši ukazi SSH

Tukaj so ukazi, ki jih boste na strežniku najpogosteje uporabljali.

Navigacija in datoteke

  • ls -la: Izpiše seznam datotek v imeniku s podrobnimi informacijami (dovoljenja, lastnik, velikost, datum).
  • cd /pot/do/imenika: Sprememba aktivnega imenika.
  • pwd: Prikaže trenutni imenik.
  • cat datoteka.txt: Prikaže vsebino datoteke v terminalu.
  • nano datoteka.txt: Odpre datoteko v urejevalniku nano za urejanje. Ctrl+O za shranjevanje, Ctrl+X za izhod.
  • cp izvor cilj: Kopira datoteko. Za imenike dodajte -r.
  • mv izvor cilj: Premakne ali preimenuje datoteko ali imenik.
  • rm datoteka: Izbriše datoteko. rm -rf imenik izbriše imenik z vso vsebino (previdno s tem ukazom!).
  • chmod 755 datoteka: Spremeni dovoljenja datoteke (755 = lastnik vse, skupina/ostali berejo in izvajajo).
  • chown uporabnik:skupina datoteka: Spremeni lastništvo datoteke.

Sistem in storitve

  • top ali htop: Prikaže aktivne procese in porabo virov (CPU, RAM) v realnem času.
  • df -h: Prikaže porabo diska v berljivi obliki.
  • free -h: Prikaže porabo pomnilnika (RAM).
  • systemctl status nginx: Prikaže stanje storitve (nginx, mysql, php-fpm itd.).
  • systemctl restart nginx: Ponovno zažene storitev.
  • journalctl -u nginx -f: Spremlja dnevnike storitve v realnem času.
  • tail -f /var/log/syslog: Spremlja sistemski dnevnik v realnem času.

Omrežje

  • ping domena.com: Preizkusi povezavo s strežnikom ali domeno.
  • curl -I https://domena.com: Prikaže glave HTTP spletnega mesta (uporabno za preverjanje preusmeritev in glav).
  • netstat -tulpn: Prikaže vse aktivne omrežne povezave in vrata, ki poslušajo.
  • dig domena.com: Poizvedba DNS, ki prikaže zapise DNS domene.

Prenos datotek

Protokol SSH omogoča tudi varen prenos datotek med vašim računalnikom in strežnikom.

SCP (Secure Copy)

SCP za kopiranje datotek uporablja SSH. Za nalaganje datoteke na strežnik uporabite scp lokalna_datoteka uporabnik@strežnik:/pot/na/strežniku. Za prenos s strežnika uporabite scp uporabnik@strežnik:/pot/na/strežniku/datoteka ./lokalni_imenik. Za kopiranje celotnih imenikov dodajte zastavico -r. SCP je preprost, vendar ne ponuja naprednih funkcionalnosti, kot je nadaljevanje prekinjenega prenosa.

SFTP (SSH File Transfer Protocol)

SFTP je interaktivni protokol za prenos datotek, ki deluje prek SSH. Uporabljate ga lahko iz terminala z ukazom sftp uporabnik@strežnik ali prek grafičnih odjemalcev, kot so FileZilla, WinSCP ali Cyberduck. SFTP ponuja navigacijo po imenikih, pregled datotek, nalaganje/prenos z nadaljevanjem prekinjenega prenosa in upravljanje dovoljenj - vse prek varne povezave SSH.

rsync

rsync je naprednejše orodje za sinhronizacijo datotek, ki prenese le spremembe (delto) namesto celotnih datotek. Idealno je za varnostne kopije in sinhronizacijo velikih količin podatkov. Ukaz rsync -avz --progress izvor uporabnik@strežnik:/cilj sinhronizira lokalni imenik s strežniškim in prenese le spremenjene datoteke. rsync podpira tudi stiskanje med prenosom in nadaljevanje prekinjenih operacij.

Varnostna priporočila za SSH

  • Uporabljajte ključe SSH: Vedno imejte raje ključe kot gesla. Po namestitvi ključev izklopite avtentikacijo z geslom.
  • Omejite dostop: Uporabite AllowUsers ali AllowGroups v sshd_config, da omejite, kateri uporabniki lahko dostopajo do SSH.
  • Fail2ban: Namestite fail2ban, ki samodejno blokira naslove IP po določenem številu neuspešnih poskusov prijave.
  • Redno posodabljajte: Strežnik SSH (OpenSSH) imejte posodobljen, saj se varnostne ranljivosti občasno odkrijejo in popravijo.
  • Zaščitite zasebni ključ: Zasebnega ključa nikoli ne delite. Ključ zaščitite z geselno frazo. Varnostno kopijo hranite na varnem mestu.
  • Onemogočite dostop root: Nastavite PermitRootLogin na no ali prohibit-password in za skrbniška opravila uporabljajte sudo.

Zaključek

SSH je temeljno orodje za upravljanje strežnika in vsak lastnik VPS-ja ali namenskega strežnika bi se moral naučiti osnovnih ukazov SSH. Začnite s preprostimi opravili, kot sta pregledovanje dnevnikov in ponovno zaganjanje storitev, ter postopoma preidite na naprednejše nastavitve, kot so ključi SSH in konfiguracija požarnega zidu. Z vajo postane ukazna vrstica hitrejša in učinkovitejša od katerega koli grafičnega vmesnika. Pri BeoHostingu vsi naši paketi VPS prihajajo z dostopom SSH in popolnim nadzorom root, naša ekipa za podporo pa je vedno na voljo, da vam pomaga s konfiguracijo in varnostnimi nastavitvami.

BeoHosting Ekipa

10+ let izkušenj — Strokovnjaki za spletno gostovanje in infrastrukturo

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Zadnja posodobitev: