ССХ (Secure Shell) predstavlja izuzetnu tehnologiju koja omogućava skrivanje VPN saobraćaja, obezbeđivanje konekcije sa web lokacijama i mnogo više. Jedan od izazova je potreba za unosom lozinke pri svakom povezivanju sa udaljenom mašinom, što može biti zamorno. Ukoliko ste programer koji se često povezuje na više mašina putem SSH-a koristeći Bash skripte, ili jednostavno korisnik kome je dosadilo stalno unošenje lozinki, postoji elegantno rešenje: SSH bez lozinke. Ovaj pristup podrazumeva generisanje sigurnog SSH ključa na glavnom računaru i njegovo deljenje radi omogućavanja pristupa drugim računarima. Ovo znači da svako ko poseduje ključ može se prijaviti, čak i bez znanja lozinke. U nastavku sledi objašnjenje kako to postići.
Šta su to SSH ključevi?
SSH ključ je jedinstvena datoteka za identifikaciju koja se koristi u okviru Secure Shell protokola. Osnovna funkcija ovih ključeva je da obezbede korisniku jedinstven identitet i označe ga kao „pouzdanog“ prilikom prijavljivanja. Ovi ključevi su više od običnih datoteka koje potvrđuju identitet korisnika. U suštini, SSH omogućava korisnicima da se prijave pomoću ključa umesto lozinke. Dakle, umesto da morate da unosite lozinku svaki put kada se prijavljujete putem SSH-a, možete koristiti SSH ključ.
SSH ključ se čuva na bezbednom mestu na vašem Linux sistemu, i odatle se možete povezivati sa udaljenim mašinama bez potrebe za unosom lozinke.
Kreiranje sigurnih SSH ključeva
Proces kreiranja sigurnog SSH ključa zahteva da SSH bude funkcionalan na vašem sistemu. Ovo ne znači nužno da morate imati SSH server, već da osnovni SSH alati i tehnologije rade na vašem Linux računaru. Ukoliko niste sigurni kako da podesite SSH, možete potražiti odgovarajuća uputstva.
Uvek generišite SSH ključeve na sistemu koji hostuje SSH server. Nemojte pokušavati da ih generišete na serveru koji ne hostuje SSH sesiju i kopirate na SSH host mašinu. Takav pristup neće funkcionisati.
Da biste započeli proces kreiranja ključeva, otvorite terminal. Unutar terminala, pokrenite sledeću komandu:
ssh-keygen -t rsa
Nakon pokretanja `ssh-keygen`, prikazaće se poruka „Generating public/private rsa key pair“ što znači da sistem generiše par javnog i privatnog ključa. Javni ključevi su oni koje možete deliti sa drugima i oni se koriste za verifikaciju vašeg identiteta. Privatni ključ, sa druge strane, nikada ne biste smeli deliti ni sa kim. Otuda i naziv „privatni“.
Ključevi će biti sačuvani u direktorijumu `/home/korisničko_ime/.ssh/id_rsa`.
Važna napomena: NEMOJTE BRISATI direktorijum `~/.ssh`, jer on sadrži vaše ključeve. Ukoliko na bilo koji način oštetite ovaj direktorijum, i pokušate da se udaljeno prijavite na mašinu, SSH neće uspeti, prikazaće upozorenje i zaključati vas.
Korišćenje SSH ključeva na udaljenoj mašini
Sada kada su SSH ključevi (javni i privatni) kreirani i spremni za upotrebu, potrebno je da ih kopirate na sistem sa kojeg želite da se prijavite. Važno je da ovaj proces ponovite na svim mašinama sa kojih planirate da se prijavljujete putem SSH-a. U suprotnom, na mašinama koje nemaju ključ bićete primorani da se prijavite koristeći lozinku.
Da biste dodali ključeve udaljenom sistemu, pratite sledeći primer. Obavezno ovo uradite sa host mašine preko SSH-a.
ssh [email protected] mkdir -p .ssh
Pokretanje ove SSH komande kreiraće skriveni `~/.ssh` direktorijum u home direktorijumu udaljene mašine (koristeći korisnika koji je upotrebljen za prijavu). Ovaj direktorijum je ključan jer ćemo u njega kopirati novo generisane SSH ključeve.
Da biste kopirali SSH ključeve, pokrenite još jednu komandu sa SSH host mašine ka udaljenoj mašini kojoj su potrebni ključevi:
cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'
Proces kopiranja će trajati nekoliko sekundi, u zavisnosti od brzine vaše mreže. Kada se završi, udaljeni računar će imati generisane ključeve i moći će da se prijavljuje na SSH host računar bez lozinke.
Pravljenje rezervne kopije SSH ključeva
SSH ključevi su izuzetno korisni i svaki je jedinstven. Zbog toga je pravljenje rezervne kopije ključeva najbolji pristup. Međutim, ako ih sačuvate na nekom drugom mestu, neko može pronaći vaš SSH ključ, zadržati ga i koristiti za sebe. Dakle, postavlja se pitanje, koji je najbolji način za pravljenje bezbedne rezervne kopije SSH ključa? Rešenje je enkripcija.
Najbrži, najefikasniji i najlakši način za enkripciju je upotreba GnuPG alata. Ovaj alat je ugrađen u većinu Linux distribucija i neophodan je za enkripciju datoteka. Da biste instalirali GnuPG, otvorite terminal i pretražite “gpg” u vašem menadžeru paketa. Trebalo bi da ga lako pronađete čak i na manje popularnim distribucijama Linuxa.
Nakon što GPG bude instaliran i spreman, pokrenite proces enkripcije kompresovanjem vašeg `~/.ssh` direktorijuma u tar arhivsku datoteku. Ovo će eliminisati potrebu da enkriptujete svaku datoteku pojedinačno u `~/.ssh` direktorijumu.
tar -czvf ssh-stuff.tar.gz /home/username/.ssh
Kada se kompresija završi, pokrenite proces enkripcije.
Napomena: pre enkripcije, pokrenite `gpg` u terminalu da biste generisali novi prsten ključeva.
gpg -c ssh-stuff.tar.gz
Kada se proces enkripcije završi, GnuPG će generisati datoteku pod nazivom „ssh-stuff.tar.gz.gpg“. Slobodno izbrišite originalnu, neenkriptovanu verziju datoteke. Da biste dešifrovali rezervnu arhivu, uradite sledeće:
gpg ssh-stuff.tar.gz.gpg