HemNet Home -- O HemNet-u -- SSH -- Konzolni SSH/SCP/SFTP

SSH konzolni klijenti

Sve savremene distribucije Linux-a, Open/Free/NetBSD-a i drugih Unix i Unix-like sistema obuhvataju potrebne programe za konzolni rad sa SSH serijom protokola. Obično se radi o programima iz paketa OpenSSH, koji je besplatan, sa kompletnim izvornim kodom dostupnim za download, a distribuira se pod uslovima BSD licence. Za korisnika su bitni ovi programi:

Ovde dajemo osnovna uputstva za rad sa ovim programima; ista ta uputstva važe i za programe pscp.exe i psftp.exe iz PuTTY paketa, s tim što se pscp i psftp pokreću kao i ostali MS Windows programi.

SSH - interaktivni rad sa udaljenim računarom

Da biste uspostavili SSH vezu sa udaljenim računarom, zadajte sledeću komandu:

ssh ime_korisnika@ime_računara

Ime_korisnika zamenite s imenom Vašeg naloga na udaljenom računaru, a ime_računara sa DNS imenom ili IP adresom tog računara. Npr, korisnik "pperic" bi vezu sa našim centralnim serverom, helix-om, inicirao ovako:

ssh pperic@helix.chem.bg.ac.rs

ili:

ssh pperic@147.91.70.1

Isto ovo se može postići i upotrebom opcije -l ime_korisnika, npr:

ssh -l pperic helix.chem.bg.ac.rs

Ukoliko su Vaša korisnička imena na lokalnom i udaljenom računaru ista, onda se definisanje korisničkog imena prilikom zadavanja komande može izostaviti. Npr, ako "pperic" ima istoimeni nalog i na svom lokalnom računaru i na helix-u, onda on može zadati i samo ovakvu komandu:

ssh helix.chem.bg.ac.rs

Ovde se, dakle, podrazumeva korisničko ime sa lokalnog računara. Na bilo koji od ovih načina, korisničko ime je prilikom iniciranja SSH veze poznato, i potrebno je da se još samo unese šifra. Udaljeni server će izbaciti prompt nalik na ovaj:

pperic@helix.chem.bg.ac.rs's password:

Sada treba da ukucate šifru za Vaš nalog na udaljenom računaru. Ako su ime i lozinka ispravni, udaljeni računar prihvata vezu i pokreće Vaš shell. Na dalje radite isto kao i sa Telnet ili rsh servisima. Veza se prekida zadavanjem naredbe za odjavljivanje na udaljenom računaru ("exit" ili "logout").

Ukoliko se prvi put povezujete na neki server putem SSH-a (ili SCP/SFTP-a), Vaš klijent će ispisati upozorenje da nije u stanju da proveri autentičnost servera. Biće Vam prikazan javni ključ udaljenog računara i ponuđeno da ga prihvatite ili odbijete. Prihvaćeni ključevi se zapisuju u datoteku .ssh/known_hosts u Vašem osnovnom direktorijumu lokalnog računara, i omogućavaju proveru identiteta servera prilikom sledećih povezivanja.

SCP - prenos pojedinačnih datoteka

Naredba scp omogućava prenos pojedinačnih datoteka između dva računara. Njen opšti oblik izgleda ovako:

scp ime_korisnika1@ime_računara1:ime_datoteke1 ime_korisnika2@ime_računara2:ime_datoteke2

Ime_računara1 je ime računara na kome se nalazi datoteka koju treba preneti, ime_korisnika1 je ime Vašeg naloga na tom računaru, a ime_datoteke1 je ime (može da sadrži i stazu) datoteke za prenos. Sa druge strane, ime_računara2 je ime računara na koji fajl treba da se prenese, ime_korisnika2 je Vaše korisničko ime na tom drugom računaru, a ime_datoteke2 je ime pod kojim fajl treba da bude snimljen. Bilo koji od ovih delova može da se izostavi, ali pun oblik naredbe scp omogućava da prenesete datoteku direktno s jednog udaljenog računara na drugi, takođe udaljen računar, a da pri tom ne morate da je kopirate na lokalni računar!

Ako npr. korisnik pperic želi da prenese datoteku "merenja.txt" iz direktorijuma "podaci" sa svog (lokalnog) računara na helix, to može da uradi sledećom komandom:

scp podaci/merenja.txt pperic@helix.chem.bg.ac.rs

Datoteka će biti snimljena pod istim imenom "podaci.txt" u osnovni (home) direktorijum korisnika "pperic" na helix-u (tj. u "/home/pperic"). Međutim, naredba:

scp podaci/merenja.txt pperic@helix.chem.bg.ac.rs:~/abc

preneće datoteku na helix i - ako korisnik pperic tamo ima već napravljen direktorijum "abc" u svom home-u - snimiće je kao abc/podaci.txt. Ukoliko, pak, direktorijum "abc" ne postoji, onda će datoteka biti snimljena pod tim imenom.

U obrnutom slučaju, ako pperic želi da datoteku "xyz" iz svog home-direktorijuma na helix-u prekopira u radni direktorijum na svom lokalnom računaru, naredba bi izgledala ovako:

scp pperic@helix.chem.bg.ac.rs:xyz .

Tačka ("."), kao i kod komande cp označava radni direktorijum.

U svakom od ovih slučajeva, korisnik pperic će morati da ukuca svoju šifru za nalog na helix-u; autentikacija, dakle, ide isto kao i kod komande ssh.

SFTP - zamena za FTP

Pokretanje SFTP klijenta je isto kao i kod SSH-a, npr. za korisnika "pperic" na serveru "helix.chem.bg.ac.rs":

sftp pperci@helix.chem.bg.ac.rs

ili:

sftp -l pperic helix.chem.bg.ac.rs

Provera identiteta (prijem javnog ključa servera i unos korisnikove šifre) je takođe istovetna. Kad se veza uspostavi, dalji rad je nalik na standardni FTP, s tom razlikom što SFTP klijenti podržavaju manji broj komandi. Ovo su neke od najčešće korišćenih:

Napominjemo da je prenos podataka putem SFTP-a sporiji nego preko običnog FTP-a zbog šifrovanja i provere autentičnosti povezanih računara.

Autentikacija korisnika putem ključeva

NAPOMENA: ovaj način prijavljivanja na udaljene sisteme preporučujemo samo naprednim korisnicima!

Gore opisani postupak za prijavljivanje korisnika na udaljeni sistem podrazumeva autentikaciju putem šifre za nalog (kao kod npr. Telnet-a). Osim toga, SSH protokol nudi mogućnost autentikacije putem parova javni/tajni ključ. Ovde slede kratka uputstva kako da podesite taj način prijavljivanja na svoj nalog:

Da biste generisali svoj ključ, na lokalnom računaru upotrebite naredbu:

ssh-keygen -t tip

Tip može da bude rsa ili dsa za SSH2 verziju protokola, ili rsa1 za SSH1. Ova naredba će tražiti od Vas da unesete lozinku za svoj ključ (to može da bude bilo kakav string, a može i da se izostavi), kao i naziv datoteke u koju ključ treba da bude snimljen. Podrazumevane vrednosti (koje je preporučljivo ne menjati) jesu sledeće:

Pošto je par ključeva generisan, sadržaj datoteke za javni ključ treba da dodate u datoteku ".ssh/authorized_keys" na serveru kome želite da pristupate koristeći ovaj način autentikacije.

Kada sledeći put upotrebite neku od komandi ssh/scp/sftp za pristup tom udaljenom računaru, SSH server na njemu i klijent na Vašem računaru će uporediti javni i tajni ključ. Pri tom će od Vas biti traženo da unesete lozinku (to više nije šifra za Unix nalog, već lozinka Vašeg ključa!), ako ste je uopšte definisali. Ukoliko se ključevi poklope, biće Vam dozvoljen pristup na udaljeni sistem.

Ako zaboravite lozinku svog ključa, nema načina da se ona regeneriše; morate da napravite novi par ključeva!

Za dodatne informacije o SSH protokolu, klijentima i metodama autentikacije, pogledajte man-strane za ssh, ssh-keygen i ostale programe iz SSH paketa.