Preskoči na sadržaj
BeoHosting
BeoHosting
Tehničko

Kako koristiti SSH za upravljanje serverom

BeoHosting Team··12 min čitanja čitanja
Kako koristiti SSH za upravljanje serverom

Šta je SSH i zašto je vazan

SSH (Secure Shell) je mrežni protokol koji omogućava sigurnu komunikaciju između dva računara preko nesigurne mreže. U kontekstu web hostinga, SSH vam omogućava da se povezete na vaš server i upravljate njime putem komandne linije - instalirate softver, editirate konfiguracijske fajlove, restarujete servise, pregledajte logove i obavljate sve administrativne zadatke.

Pre SSH-a, administratori su koristili Telnet protokol koji je slao sve podatke (uključujući lozinke) u necriptovanom obliku. SSH je zamenio Telnet donosenjem enkripcije cjelokupne komunikacije, što znači da niko ko prisluškuje mrežni promet ne može videti šta radite na serveru ili ukrasti vaše pristupne podatke.

SSH radi na principu klijent-server arhitekture. Vaš računar (klijent) pokreće SSH klijent program koji se povezuje na SSH server (daemon) koji radi na udaljenom serveru, obično na portu 22. Nakon autentifikacije, dobijate pristup komandnoj liniji servera kao da sedite ispred njega.

SSH klijenti

Da biste se povezali na server preko SSH-a, potreban vam je SSH klijent program na vašem računaru.

Linux i macOS - Terminal

Linux i macOS dolaze sa ugradenim SSH klijentom. Otvorite Terminal aplikaciju i koristite komandu: ssh korisnik@ip-adresa-servera. Na primjer: ssh root@185.210.45.67. Sistem će vaš pitati za lozinku (ili koristiti SSH ključ ako je konfiguriran). Nakon uspješne autentifikacije, videćete komandni prompt servera i možete poceti sa radom.

Windows - PuTTY

PuTTY je najpopularniji besplatni SSH klijent za Windows. Preuzmite ga sa oficijalnog sajta (putty.org) i pokrenite. U polje "Host Name" unesite IP adresu servera, port ostavite na 22, izaberite "SSH" kao tip konekcije i kliknite "Open". Pojavice se terminal prozor sa promptom za korisničko ime i lozinku.

Windows 10/11 - ugradeni SSH

Novije verzije Windows-a (10 i 11) dolaze sa ugradenim OpenSSH klijentom. Otvorite PowerShell ili Command Prompt i koristite istu ssh komandu kao na Linux-u. Ovo je jednostavniji pristup od PuTTY-ja jer ne zahtijeva instalaciju dodatnog softvera i koristi isti sučelje kao Linux/macOS.

Napredni klijenti

Za korisnike koji svakodnevno rade sa više servera, napredni klijenti poput Termius, MobaXterm ili Royal TSX nude dodatne funkcionalnosti: čuvanje konekcija, SFTP fajl menadžer, tabovi za više sesija, snippet menadžer i integraciju sa cloud platformama.

Osnovna konfiguracija SSH-a

Pravilna konfiguracija SSH konekcija štedite vrijeme i povećava sigurnost.

SSH config fajl

Na Linux-u i macOS-u, možete kreirati ~/.ssh/config fajl koji čuva podešavanja za vaše servere. Umjesto da svaki put kucate punu komandu sa IP adresom, korisničkim imenom i portom, možete definirati aliase. Na primjer, možete definirati alias "mojserver" sa Host, HostName (IP adresa), User (korisničko ime), Port i IdentityFile (putanja do SSH ključa). Nakon toga, dovoljno je da kucate ssh mojserver i sve će biti automatski primjenjeno.

Promjena podrazumijevanog porta

SSH podrazumijevano koristi port 22. Promjena na drugi port (na primjer 2222 ili neki drugi nestandardni port) smanjuje broj automatiziranih napada jer većina botova skenira samo port 22. Ovo nije prava sigurnosna mjera (security through obscurity) ali efektivno smanjuje "sum" u logovima. Promenite port u /etc/ssh/sshd_config fajlu na serveru.

Autentifikacija SSH ključem

Autentifikacija ključem je sigurnija i praktičnija od korištenja lozinki. Umjesto da pamtite i kucate lozinku svaki put, koristite par kriptografskih ključeva.

Kako radi

SSH ključ par se sastoji od privatnog ključa (koji ostaje na vašem računaru i nikada se ne deli) i javnog ključa (koji se postavlja na server). Kada se povezujete, server šalje izazov koji samo vlasnik privatnog ključa može resiti. Vaš SSH klijent koristi privatni ključ za potpis, server verifikira potpis javnim ključem i - ako se poklapaju - autentifikacija je uspješna. Lozinka se nikada ne prenosi preko mreže.

Generisanje ključa

Na Linux-u i macOS-u koristite komandu ssh-keygen za generiranje ključa. Preporučujemo Ed25519 algoritam koji je moderan, brz i siguran. Komanda će vaš pitati gdje da sačuva ključ (podrazumijevano ~/.ssh/id_ed25519) i da li želite passphrase (dodatna lozinka za zaštitu ključa - preporučeno). Kreirace se dva fajla: privatni ključ i javni ključ sa .pub ekstenzijom.

Postavljanje javnog ključa na server

Javni ključ treba kopirati na server u ~/.ssh/authorized_keys fajl korisnika na koji se povezujete. Najlakši način je komanda ssh-copy-id koja automatski kopira vaš javni ključ na server. Alternativno, možete ručno dodati sadržaj .pub fajla u authorized_keys na serveru.

Isključivanje lozinke

Kada potvrdite da SSH ključ radi, preporučljivo je isključiti autentifikaciju lozinkom na serveru editiranjem sshd_config fajla i postavljanjem PasswordAuthentication na no. Ovo dramatično povećava sigurnost jer botovi ne mogu pogađati lozinku - jedini način pristupa je posjedovanje privatnog ključa.

Najvažnije SSH komande

Evo komandi koje ćete najčešće koristiti na serveru.

Navigacija i fajlovi

  • ls -la: Lista fajlova u direktorijumu sa detaljnim informacijama (permisije, vlasnik, veličina, datum).
  • cd /putanja/do/direktorijuma: Promjena aktivnog direktorijuma.
  • pwd: Prikazuje trenutni direktorijum.
  • cat fajl.txt: Prikazuje sadržaj fajla u terminalu.
  • nano fajl.txt: Otvara fajl u nano editoru za editiranje. Ctrl+O za čuvanje, Ctrl+X za izlaz.
  • cp izvor odredište: Kopira fajl. Dodajte -r za direktorijume.
  • mv izvor odredište: Pomera ili preimenuje fajl ili direktorijum.
  • rm fajl: Brise fajl. rm -rf direktorijum brise direktorijum sa svim sadržajem (oprez sa ovom komandom!).
  • chmod 755 fajl: Menja permisije fajla (755 = vlasnik sve, grupa/ostali čitaju i izvrsavaju).
  • chown korisnik:grupa fajl: Menja vlasnistvo fajla.

Sistem i servisi

  • top ili htop: Prikazuje aktivne procese i korištenje resursa (CPU, RAM) u realnom vremenu.
  • df -h: Prikazuje korištenje diska u citljivom formatu.
  • free -h: Prikazuje korištenje memorije (RAM).
  • systemctl status nginx: Prikazuje status servisa (nginx, mysql, php-fpm, itd.).
  • systemctl restart nginx: Restartira servis.
  • journalctl -u nginx -f: Prati logove servisa u realnom vremenu.
  • tail -f /var/log/syslog: Prati sistemski log u realnom vremenu.

Mreža

  • ping domen.com: Testira konekciju ka serveru ili domenu.
  • curl -I https://domen.com: Prikazuje HTTP zaglavlja sajta (korisno za provjeru redirekcija i headera).
  • netstat -tulpn: Prikazuje sve aktivne mrežne konekcije i portove koji slušaju.
  • dig domen.com: DNS upit koji pokazuje DNS zapise domena.

Transfer fajlova

SSH protokol omogućava i siguran transfer fajlova između vašeg računara i servera.

SCP (Secure Copy)

SCP koristi SSH za kopiranje fajlova. Za upload fajla na server koristite scp lokalni_fajl korisnik@server:/putanja/na/serveru. Za download sa servera koristite scp korisnik@server:/putanja/na/serveru/fajl ./lokalni_direktorijum. Za kopiranje cijelih direktorijuma dodajte -r flag. SCP je jednostavan ali ne nudi napredne funkcionalnosti poput nastavka prekinutog transfera.

SFTP (SSH File Transfer Protocol)

SFTP je interaktivni fajl transfer protokol koji radi preko SSH. Možete ga koristiti iz terminala sa komandom sftp korisnik@server ili kroz graficke klijente poput FileZilla, WinSCP ili Cyberduck. SFTP nudi navigaciju po direktorijumima, pregled fajlova, upload/download sa nastavkom prekinutog transfera i upravljanje permisijama - sve preko sigurne SSH konekcije.

rsync

rsync je napredniji alat za sinhronizaciju fajlova koji prenosi samo promjene (deltu) umjesto cijelih fajlova. Idealan je za bekap i sinhronizaciju velikih količina podataka. Komanda rsync -avz --progress izvor korisnik@server:/odredište sinhronizuje lokalni direktorijum sa serverskim, prenoseci samo izmijenjene fajlove. rsync također podržava kompresiju tokom transfera i nastavak prekinutih operacija.

Sigurnosne preporuke za SSH

  • Koristite SSH kljuceve: Uvek preferirajte kljuceve nad lozinkama. Isključite autentifikaciju lozinkom nakon postavljanja ključeva.
  • Ogranite pristup: Koristite AllowUsers ili AllowGroups u sshd_config da ogranicite koji korisnici mogu pristupiti SSH-u.
  • Fail2ban: Instalirajte fail2ban koji automatski blokira IP adrese nakon određenog broja neuspješnih pokušaja prijave.
  • Redovno ažurirajte: Držite SSH server (OpenSSH) ažurnim jer se sigurnosne ranjivosti povremeno otkrivaju i popravljaju.
  • Zaštitite privatni ključ: Nikada ne delite privatni ključ. Postavite passphrase na ključ. Čuvajte backup na sigurnom mjestu.
  • Onemogućite root pristup: Postavite PermitRootLogin na no ili prohibit-password i koristite sudo za administrativne zadatke.

Zaključak

SSH je fundamentalni alat za upravljanje serverom i svaki vlasnik VPS-a ili namenskog servera treba da nauči osnovne SSH komande. Počnite sa jednostavnim zadacima poput pregledanja logova i restartiranja servisa, postepeno prelajte na naprednija podešavanja poput SSH ključeva i konfiguracije firewall-a. Sa praksom, komandna linija postaje brza i efikasnija od bilo kog grafickog sučelja. Na BeoHosting-u, svi naši VPS paketi dolaze sa SSH pristupom i kompletnom root kontrolom, a naš tim za podršku je uvek dostupan da pomogne sa konfiguracijom i sigurnosnim podešavanjima.

BeoHosting Team

10+ godina iskustva — Stručnjaci za web hosting i infrastrukturu

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

Posljednje ažuriranje: