SSH osnove

Vjerojatno ste se mnogo puta našli u situaciji kad vam je potreban vrlo brz i “moćan” alat za manipulaciju fileovima, bazama, cronovima, web aplikacijama i hosting accountom. Ukoliko hostate na linux poslužiteljima vaše potrebe će najbolje zadovoljiti SSH. Kroz sljedeće blogove uvidjet ćete da je ssh u većini slučajeva i jedini pravi način na koji se neke radnje mogu obaviti.


Što je točno ssh?

SSH je sigurni protokol za udaljenu administraciju računala.

Svaki od naših linux servera posjeduje ssh servis za udaljeni pristup, te je korisnicima omogućen ssh pristup uz upotrebu odgovarajućeg klijenta. Na Internetu možete pronaći razne ssh klijente, a kao pouzdane i besplatne možemo vam preporučiti : Linuxov ugrađeni OpenSSH SSH client, Putty za Windows računala ili NiftyTelnet za MacOS.

Kako se mogu spojiti na server?

Koristeći linuxov Ugrađeni ssh klijent spajanje se vrši putem komande

ssh username@hostname

Ukoliko se na server spajate po prvi put, klijent će vas pitati želite li spremiti jedinstveni server ssh fingerprint; nakon što prihvatite fingerpint ssh klijent će tražiti da unesete password za username s kojim se spajate. Ukoliko je password točan ssh klijent će se uredno spojiti na server.

Kako bi se na server spojili putem Putty klijenta?

Nakon pokretanja putty programa pojavit će vam se ovakav prozor. U polje hostname unosite naravno ime servera na koji se spajate. Port za spajanje ostaje 22, connection type ostavljate ssh. Ukoliko kliknete na tipku open klijent će se spojiti na server sa zadanim parametrima, međutim do sada zadane parametre kao i dodatne advanced parametre (dokumentaciju parametara naći će te ovdje) možemo spremiti u session tako da utipkamo željeni session name te kliknemo na tipku save.

Svi parametri koje smo prethodno podesili nam ostaju spremljeni za novo pokretanje programa, a jednostavnim dvostrukim klikom na ime sessiona pokreće se terminal sa zadanim parametrima.

Klikom na tipku open ili na prethodno sačuvani session otvara se novi prozor, koji će vas ukoliko se spajate po prvi put pitati želite li spremiti server fingerprint. Nakon spremanja fingerprinta terminal će vas pitati username te zatim password.

Ok ulogirao se, što sad?

U ovom trenutku server od vas očekuje komandnolinijsku instrukciju. Nije tako strašno kao što zvuči 🙂

Dakle, nakon što ste se spojili ssh-om na server ušli ste u komandnolinijsko sučelje linux servera, koje nije toliko grafički oku ugodno kao desktop okruženje vašeg računala ali je jednako efikasno, a u većini slučajeva čak i više. Utipkane komande se izvršavaju tek nakon što ih potvrdite tipkom enter.

Neke od osnovnih komandi su vrlo slične starim MSDos komandama, pa tako npr. komanda:

mkdir - kreira direktorij

cd - navigira kroz direktorije

ls - lista sadržaj trenutnog direktorija

pwd - ispisuje apsolutnu putanju direktorija u kojem se nalazimo

rm - briše direktorije ili fileove (oprezno!)

cp - za kopiranje fileova ili direktorija

mv - za premještanje

Dodatne komande možete pronaći pomoću ove pretrage, a par zgodnih trikova ćete naći i na ovoj stranici.

Svaka komanda je dokumentirana i za svaku komandu možete putem ssh konekcije pozvati manual. Komanda za pozivanje manuala/dokumentacije je

man imekomande

Dakle ukoliko želite pogledati dokumentaciju za komandu ls jednostavno utipkate

man ls

dokumentacijom se krećete pomoću kursorskih tipki, a iz nje izlazite pritiskom na tipku “Q“.

Zašto je ovo puno bolje nego ftp?

Problem kod ftp-a je što je to isključivo file transfer protokol, dakle ukoliko bismo htjeli preseliti fileove iz jednog foldera u drugi ftp klijent mora za svaki file posebno establishati konekciju, izvršiti komandu te nanovo čitati strukturu direktorija. Naravno ovaj cijeli proces s ftp-om može potrajati i po nekoliko minuta ili sati ovisno o broju fileova za premještanje i brzini konekcije.

Kroz shell to možemo jednostavno, za manje od sekundu, izvršiti komandom

mv trenutna_lokacija nova_lokacija

Naravno, ukoliko želim preseliti samo slike .jpg formata mogu koristit wildcarde bez nepotrebnog kliktanja po ftp klijentu i selektiranja .jpg fileova. Kroz shell to jednostavno izvršim komandom

mv trenutnifolder/*.jpg novifolder/

Što su točno wildcardi?

Wildcardi su posebni znakovi koji mogu zamjeniti jedan ili set znakova u komandi. Wildcardi su nam osobito korisni u shell komandama jer nam dozoljavaju selektivan odabir fileova.

* - Zamjenjuje bilo koji znak u bilo kojoj količini (npr. *.jpg je isto kao i bilo koji od ovih filenameova, 123.jpg, dse2sx.jpg, a.jpg)

? - Zamjenjuje bilo koji znak na samo jednom mjestu. (npr. d?n.jpg je isto kao bilo koji od ovih filenameova dan.jpg, d1n.jpg, dTn.jpg)

[] - Unutar uglatih zagrada se može staviti raspon znakova za zamjenu (npr. [1-9].jpg je identično kao i 1.jpg, 2.jpg... ili recimo [A-Z,a-z].jpg mjenja bilo koje veliko ili malo slovo abecede u rasponu od a do z).

Ok, primjenimo wildcarde i sve gore navedene komande u praksi.

Želim preseliti sve .jpg slike iz mape slike/ koje počinju slovima a u podmapu slike/a/

Nakon što se ulogiramo pomoću ssh-a na svoj hosting account ssh terminal će se “probuditi” u /home/username/ folderu. Za početak ćemo ući u folder slike:

cd public_html/slike/

Ukoliko niste sigurni nalazite li se u pravom folderu možete upisati komandu

pwd

Provjerti ćemo postoji li već subfolder:

ls -lh a

Ukoliko direktorij ne postoji dobit ćemo output :

ls: a: No such file or directory

Napravimo svoj a direktorij:

mkdir a

Zatim ćemo preseliti sve slike koje počinju s malim ili velikim slovom a u novokreirani poddirektorij a

mv [a,A]*.jpg a/

 Postoji li alternativa?

Naravno, za neke jednostavnije funkcije postoji odličan shell alat Midnight Commander, vrlo je sličan starom Norton commanderu iz MSDos-a

Mc

Program jedostavno možete pogrenuti komandom

mc

a dokumentaciju možete pogedati komandom

man mc

Ok gotov sam s radom, kako se odjaviti?

Po završetku rada na serveru potrebno je izvršiti odjavu. Odjavu izvršimo komandom

logout

ili

exit

Povezani članci

Odgovori