Gym
lesson

SSH — osnove

SSH (Secure Shell) je protokol koji omogućava enkriptovanu komunikaciju između dva računara. Umesto da komande šalješ preko nezaštićene veze gde ih svako može presresti i pročitati, SSH sve kriptuje — uključujući lozinke, komande i odgovore.

Svaki Linux sistemski administrator i programer koristi SSH svakodnevno za udaljeni pristup serverima.

Zašto je SSH važan?

Pre SSH-a koristili su se protokoli poput Telneta koji šalju sve podatke u čistom tekstu. Napadač koji presretne mrežni saobraćaj može videti tvoju lozinku. SSH rešava ovaj problem tako što kriptuje ceo razgovor između tvog računara i servera — i lozinku i sve komande i sve odgovore.

SSH server podrazumevano sluša na portu 22.

Osnovna upotreba: ssh user@host

ssh [email protected]

Sistem će pitati za lozinku korisnika student na tom serveru. Nakon unosa, dobijaš interaktivni terminal na udaljenom računaru — sve što kucaš se izvršava tamo, ne na tvom lokalnom računaru.

ssh [email protected]          # Konekcija po imenu domena umesto IP-a
ssh student@host 'ls -la /var/log'     # Pokreni jednu komandu i izađi

Nestandardni port: -p

Ako server sluša na nestandardnom portu, koristiš opciju -p:

ssh -p 2222 [email protected]

Veliki broj servera namerno koristi port različit od 22 da smanji količinu automatizovanih pokušaja prijave.

Prvi put: provera otiska ključa

Kada se prvi put konektuješ na server, SSH prikazuje otisak (fingerprint) servera i pita za potvrdu:

The authenticity of host '192.168.1.50' can't be established.
ED25519 key fingerprint is SHA256:AbCdEf123...
Are you sure you want to continue connecting (yes/no)?

Ovo je bezbednosna provera — kucaš yes samo ako veruješ da se zaista konektuješ na pravi server. Nakon prvog yes, otisak se pamti u fajlu ~/.ssh/known_hosts i sledeći put ne pita ponovo.

Savet: Ako se otisak iznenada promeni za server na koji se već konektovao, SSH će glasno upozoriti. To može značiti da je server reinstaliran — ali može značiti i da neko presreće tvoju konekciju. Proveri sa administratorom pre nego što nastavis.

Izlazak iz SSH sesije

Kada završiš rad, izađeš sa:

exit

Ili pritiskom Ctrl+D na praznom redu — isti efekat.

Praktičan primer

Tipičan tok rada izgleda ovako:

# 1. Konektuj se
ssh [email protected]

# Sada si na udaljenom serveru:
student@server:~$ ls
student@server:~$ tail /var/log/syslog
student@server:~$ sudo systemctl status nginx

# 2. Kad završiš
student@server:~$ exit

Posle exit si ponovo u svom lokalnom terminalu.

Lozinke su za pocetak — kljucevi su sigurniji

Prijavljivanje lozinkom radi i za pocetak je sasvim u redu. Ali na realnim serverima skoro uvek se koriste SSH ključevi umesto lozinki — sigurniji su, prakticniji za svakodnevni rad i otporni na brute-force napade.

Rezime komandi

Komanda Opis
ssh user@host Konektuj se na udaljeni server
ssh -p PORT user@host Konekcija na nestandardni port
ssh user@host 'komanda' Pokreni jednu komandu i izađi
exit ili Ctrl+D Izađi iz SSH sesije