Rugsėjis07
SSH raktai (
1170)
SSH yra protokolas, leidžiantis saugiai prisijungti prie nutolusio kompiuterio (serverio) ir vykdyti jame komandas. Prie serverio galima prisijungti įprastu būdu - nurodant vartotojo vardą bei slaptažodį, arba naudojant SSH raktus. Naudojant SSH raktus jungiantis prie serverio tereikia įvesti paties rakto slaptažodį - serverio vartotojo slaptažodžio įvesti nebereikia.
SSH raktą sudaro 2 failų pora - privataus ir viešojo. Privatus raktas yra saugojamas vartotojo kompiuteryje, o viešas raktas yra patalpinamas serveryje.
SSH raktų nauda vartotojui
Kadangi jungiantis prie serverio reikia žinoti tik savo rakto slaptažodį, patalpinus viešąjį raktą kiekviename iš vartotojo serverių, nebereikia žinoti kiekvieno jų slaptažodžio. Jei vartotojo kompiuteryje veikia raktų agentas (ssh-agent), slaptažodį reiks įvesti tik vieną kartą - jis bus įsimenamas.
Žinoma, privataus rakto saugumą būtina užtikrinti, nes jį gavus ir žinant jo slaptažodį, bus galima prisijungti prie kiekvieno serverio, kuriame bus viešasis raktas.
SSH raktų nauda infrastruktūrai - įmonei
Dažna situacija, kuomet keli įmonės darbuotojai turi galimybę prisijungti prie įmonės serverio SSH protokolu vienu vartotoju (pvz.: valdyti interneto tinklalapio failus). Įprastu atveju, visiems darbuotojams turėtų būti patikėtas prisijungimo slaptažodis, o vartotojui nebeleidžiant prisijungti prie serverio (pvz.: išėjus iš darbo), slaptažodis turėtų būti pakeičiamas ir apie tai informuojami visi susiję darbuotojai. Esant dideliam darbuotojų kiekiui, tai gali sukelti nepatogumų ir saugumo spragų.
Naudojant SSH raktus, kiekvienas darbuotojas turi susigeneravęs savo raktus ir prie serverio jungiasi naudodamas ne slaptažodį, o SSH raktą. Apribojus vartotojo prisijungimo galimybę, iš serverio tiesiog pašalinamas jo viešasis raktas. Taip nėra paviešinamas pats slaptažodis ir realizuojamas didesnis saugumo lygis.
SSH raktų sukūrimas
SSH raktų pora sugeneruojama naudojant komandą:
$ ssh-keygen
Vartotojo bus paprašyta įvesti ir pakartoti slaptažodį ir bus sukurti 2 failai:
~/.ssh/id_rsa - privatus raktas
~/.ssh/id_rsa.pub - viešas raktas
Windows vartotojai gali naudoti puttygen.exe programą.
SSH rakto talpinimas serveryje
SSH viešieji raktai nutolusiame kompiuteryje (serveryje) talpinami faile, esančiame ~/.ssh/authorized_keys po vieną vienoje eilutėje - reikia įrašyti viešojo rakto failo turinį. Jį galima pamatyti įvykdžius komandą:
$ cat ~/.ssh/id_rsa.pub
Kadangi galima įrašyti keletą viešųjų raktų, keli vartotojai galės prisijungti, naudodamiesi viešojo rakto autentifikacijos principu.
Kadangi failas talpinamas vartotojo namų direktorijoje, su SSH raktu bus galima prisijungti tuo vartotoju, kurio direktorijoje bus patalpinti viešieji raktai.
Svarbu! Direktorijos ~/.ssh teisės turi būti 0700, o failo ~/.ssh/authorized_keys - 0600.
Taip pat viešąjį raktą galima įdiegti naudojant komandą:
$ ssh-copy-id <vartotojo vardas>@<serverio IP arba adresas> - įkelia viešąjį raktą į serverį ir nustato failų teises. Ačiū Vidmantui.
Prisijungimas prie SSH
Prie nutolusio kompiuterio (serverio), naudojant SSH protokolą, prisijungiama naudojant komandą ssh arba SSH klientą PuTTY (Windows vartotojams). Galimi variantai:
$ ssh <serverio IP arba adresas> - bus jungiamasi tuo pačiu vartotojo vardu
$ ssh <vartotojo vardas>@<serverio IP arba adresas> - bus jungiamasi nurodytu vartotojo vardu
$ ssh -i /kelias/iki/privataus/rakto <vartotojo vardas>@<serverio IP arba adresas> - jungiamasi nurodant privataus rakto kelią (jei jis yra kitoje direktorijoje)
$ ssh -o "PubkeyAuthentication no" <vartotojo vardas>@<serverio IP arba adresas> - jungiamasi nenaudojant viešojo rakto principo
Taip pat galima susikurti SSH konfigūracijos failą, kuriame įrašius serverio pavadinimą, jam priskyrus atitinkamą vartotoją, prievadą (port), bus jungiamasi nurodytais duomenimis. Pvz.: konfigūracijos failas: ~/.ssh/config
Host serveris
HostName www.serverio-adresas.tld
User admin
PubkeyAuthentication yes
Komandinėje eilutėje užteks parašyti:
$ ssh serveris
ir automatiškai bus jungiamasi prie www.serverio-adresas.tld serverio vartotoju admin, naudojant SSH raktą. Analogiškai į konfigūracijos failą galima įrašyti kelis serverius.
Apie SSH ir jo panaudojimą taip pat rašė Sirex.
Kitas šaltinis (taip pat ir straipsnio iliustracijos): OpenSSH Public Key Authentication