SSH ključevi – prijava bez lozinke [SSH specijal]
[photo credit: ShaZ Ni *Fotogurafiku]
SSH omogućava prijavu na udaljeni sustav i uz pomoć ključeva – bez potrebe da se autentificirate lozinkom. Kako bi ovo radilo, potrebno je da i kod sebe i na udaljenom sustavu imate ključeve koji se poklapaju – na strani udaljenog sustava javni ključ, a kod sebe privatni ključ. Udaljeni SSH server će provjerom poklapanja ključeva odlučiti jeste li vi taj za koji se predstavljate ili ne.
Generiranje ključeva
Generiranje ključeva putem komandne linije je brzo – uz jednu komandu su ključevi spremni:
ssh-keygen -t rsa
Opcija -t rsa označava upotrebu RSA algoritma za potpis ključa, isto je moguće i po DSA algoritmu (-t dsa). Uz male razlike u brzini provjere, nema nekih bitnijih razlika – razina sigurnosti koju pružaju je podjednaka. Jednom kad ste pokrenuli komandu za kreiranje ključeva, biti ćete upitani za lozinku:
Lozinka ili ne
Ključ je moguće generirati s lozinkom ili bez. Razlika što se tiče sigurnosti je što ćete za upotrebu ključa s lozinkom morati ukucati lozinku da bi on bio otpakiran i spreman za provjeru od strane udaljenog sustava. Ako se ključ s lozinkom i otuđi, da bi se pristupilo udaljenom računalu je porebno znati lozinku. Za skripte je ipak praktičnije upotrebljavati ključeve bez lozinke.
Ograničavanje opcija pri prijavi
Prilikom prijave na udaljeni server preko ključa imamo i dodatnu mogućnost – ograničiti prijavu na samo neke dostupne opcije unutar SSH protokola, već prema ponuđenom ključu kod prijave. Ovo je naročito korisno kod postavljanja ključeva za skripte koji su bez lozinke – ako ih netko i otuđi na ovaj način je moguće minimalizirati potencijalnu štetu.
Opcije se stavljaju u isti red kao i ključ unutar authorized_keys datoteke a odnose se na onemogućavanje uspostave tunela (no-port-forwarding,no-X11-forwarding,no-agent-forwarding), onemogućavanje terminala (no-pty) te čak i automatski pokrenutu komandu koja će vam samo vratiti njen izlaz sa sustava nakon što ste se uspjeli autentificirati. Na primjer:
command=”/bin/echo Dobar dan”,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-dss ABCD…ostatak_ključa…
će vam samo poželiti dobar dan (bez mogućnosti rada na sustavu) kada se uspješno prijavite na server na kojem se nalazi oova linija (ako se ABCD… odnosi na vaš ključ).