INFINIUS

SSH ključevi – prijava bez lozinke [SSH specijal]

The Travellers
[Creative Commons Licensephoto 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:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 username@computer.local
Na kraju postupka ćete imati dvije datoteke – id_rsa i id_rsa.pub – prvi je vaš privatni ključ (dobro ga čuvajte) dok je ključ s nastavkom .pub javni ključ i njegov sadržaj stavljate na udaljeno računalo u datoteku “~/.ssh/authorized_keys”. SSH server čita javne ključeve iz ove datoteke i uspoređuje ih s ponuđenim privatnim ključevima prilikom uspostavljanja SSH veze.

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č).




Tagovi: ,