sveti peter oz. ključar za SSH

spet ena ssh-jeva…sshkeychain

Sistemci po x letih še vedno pišejo gesla, ko se prijavljajo na svoje strežnike. Takšen sistemc vpiše svoje geslo x-krat (where x > 50) na dan in je po možnosti enako za vseh svojih 120 strežnikov. Takšno eno za vse geslo uporablja že 5 let, ker se je nanj pač navadil.

Da ne govorim o izgubi časa, varnosti ki pade na vseh točkah, pa še kaj.

ssh je že zelo lep čas nazaj nudil rešitev. SSH ključi.

Sistem deluje na principu privatnega in javnega ključa. Javni ključ izpostavljaš po strežnikih do katerih želiš dostopati, privatnega držiš samo na svoji delovni postaji. Privatni ključ ima svoje geslo.

Tako lahko do strežnikov dostopaš samo, če imaš privatni ključ in seveda geslo zanj.

V tej fazi torej niste naredili veliko, uvedli ste nov nivo varnosti (poleg gesla še ključ, še vedno pa je potrebno pisati geslo, tokrat za ključ).

Rešitvi tudi tega se imenuje ssh-agent. Ideja ssh-agenta je, da si ob prijavi v delovno postajo, “registriraš” tudi ssh ključ (vpišeš geslo), za tem pa je prijava v sisteme brez spraševanja za geslo.

Še več, agent se “vleče” za vami, kar pomeni, da lahko ustvarite SSH povezavo do strežnika A, iz strežnika A pa naprej na strežnik B. Če imate na obeh strežnikih postavljen vaš javni ssh ključ, vas tudi pri povezavi iz A do B strežnika sistem ne bo vprašal za geslo, ker je sistem B preko sistema A dostopal do vašega ssh agenta in vas autenticiral.

Na kratko, ne potrebujete pisati več gesel sploh.

Jaz sem gesla po strežnikih celo odstranil, do mojih uporabniških računov se z geslom sploh ne da dostopati. Kolikokrat pa se vam zgodi, da potrebujete do konzole strežnika dostopati s svojim uporabniškim imenom in geslom. Meni nikoli.

Pa praksa:

Najprej si morate ustvariti ključ:
unix & unix like (tud OS X) sistemi:
# ssh-keygen

winblows: puttygen @ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Na *nix sistemih se bo ključ naredil v ~/.ssh/id_dsa <– privatni in ~/.ssh/id_dsa.pub <– javni

Zatem je potrebno postaviti ssh agenta:

OS X: recimo http://www.phil.uu.nl/~xges/ssh/
*nix: # ssh-agent
winblows: pageant @ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htm

agentom pokažite pot do ključev in jih nastavite tako, da se bodo zagnali ob logiranju v delovno postajo.

Javni del ssh ključa skopirajte po strežnikih do katerih želite dostop. To storite tako da v mapi .ssh na strežniku ustvarite, če še ni datoteko authorized_keys in vanjo skopirate svoj javni del ključa.

PAZITE ! Javni del ključa je vedno samo ena vrstica, ogromnokrat se sistemcem zgodi da jo razbijejo na več.

Eto, če ste vse naredili prav, se poskusite povezati do svojega strežnika, tokrat brez gesla.

Ob uporabi tega sistema je potrebno pomisliti malo na varnost same delovne postaje oz. dostopa do nje, zatorej zaklepajte delovno postajo ko greste od mize, nastavite “screen saver” na malo časa in zaščitenega z geslom.

Toliko zaenkrat, nisem šel v detajle, ker bi se zgubili, upam da se že niste. Ideja je predstaviti, raziskujte pa sami !

Še par 100 tipk na dan manj !

s.