SSH - 2. deo

Share on:

SSH autentifikacija razmenom ključeva


Kreiranje para SSH ključeva
Kopiranje SSH javnih ključeva (public key)
Konektovanje na klijentsku mašinu


Vrste SSH autentifikacije:

U SSH protokolu postoje 2 načina konektovanja:

  • korišćenjem lozinke (password authentication)
  • korišćenjem seta ključeva (set of SSH keys)
    Korišćenjem para ključeva vrši se automatska autentifikacija, bez potrebe za ukucavanjem passworda

KAKO RADI RAZMENA KLJUČEVA

Autentifikacija razmenom ključeva sastoji se u kreiranju para ključeva: javnog (public key), i privatnog ili tajnog (private key).
SSH klijent formira oba ključa, pri čemu privatni ostaje na klijentskoj mašini i ne daje se nikom, a javni se šalje SSH Serveru sa kojim želimo da uspostavimo vezu.
SSH Server javni ključ dobijen od klijenta, koristi da kreira poruku koju šalje nazad klijentu a koju ovaj može da pročita jedino uz pomoć privatnog ključa.
Klijent zatim formira i šalje poruku Serveru, koju ovaj prihvata kao dokaz legitimnosti i dozvoljava konekciju.


Kreiranje SSH para ključeva u Debianu 10


  1. Prvo proverimo da ne postoji već konfigurisan par ključeva u .ssh folderu:

    1cd /home/peja/.ssh
    2ls -la
    

  2. Da bi generisali SSH ključeve koristićemo komandu ssh-keygen.
    Ona je po default-u već instalirana na Debianu 10.

    1ssh-keygen -t rsa -b 4096 -C email@example.com
    
    • -t – označava tip enkripcije (u ovom slučaju RSA)
    • -b – označava broj bitova enkripcije (u ovom slučaju 4096)
    • -C – komentar (u ovom slučaju e-mail adresa)

    Pri generisanju ključeva treba da odgovorimo na neka pitanja:

    • 1Enter file in which to save the key (/home/user/.ssh/id_rsa):
      

      Ostavimo default - ENTER

    • 1Enter passphrase (empty for no passphrase)
      

      Izaberimo jaku lozinku, jer ako dođe do hakerskog napada, passphrase je drugi nivo zaštite.

      Unesimo passphrase još jednom i SSH ključevi će biti generisani

    • Kao rezultat generisana su 2 fajla

      • id_rsa: ovo je privatni ključ (PRIVATE key) koji će se koristiti na serverskoj strani za identifikaciju dolazećih klijentskih zahteva.
        Ovaj ključ naravno ne treba deliti ni sa kim.
        Takođe se koristi od strane klijenta za verifikaciju identiteta servera.
      • id_rsa.pub: “pub” ekstenzija znači “public” ili javno.
        Ovo je javni ključ (PUBLIC key) koji će koristiti klijenti da se konektuju na server.
        Ovaj ključ treba podeliti sa klijentima.


Kopiranje SSH javnih ključeva (public key) klijentima


Ima više načina kako klijentu dostaviti javni ključ.
Da se ne bi rasplinjavali koristićemo komandu:

1cat ~/.ssh/id_rsa.pub | ssh remoteuser@remoteserver "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
  • remoteuser u stvari username klijentske mašine, u našem slučaju speja

  • remoteserver ip adresa klijentske mašine, u našem slučaju 192.168.0.15
    Dakle ovako:

    1cat ~/.ssh/id_rsa.pub | ssh speja@192.168.0.15 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    
    • Startovanjem ove komande iskače prozor za unos lozinke na Serveru (passphrase on the server), naravno ukoliko smo uopšte predvideli ovu opciju.

    • Unesemo passphrase i kliknemo na unlock.
      Ovom komandom sadržaj javnog ključa šaljemo SSH protokolom udaljenom korisniku

    • Komanda prvo utvrđuje da li postoji .ssh folder na klijentskoj mašini.Sadržaj se dodaje uz postojeći sadržaj (ako postoji) u fajl authorized_keys.
      sadržaj fajla authorized_keys na kljentskoj mašini


Konektovanje na klijentsku mašinu sa SSH Servera


Konektujmo se na SSH Server sa klijenta:

1# sintaksa je: ssh user@server_ip
2ssh speja@192.168.0.15
3# ako smo promenili port sa 22 na 2222
4ssh -p 2222 speja@192.168.0.15