SSH raktai

Rugsėjis07

Žymės: linux,ssh

Pasidalink

SSH

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