Uštedite vrijeme prijavom na GitHub preko SSH-a korištenjem provjere autentičnosti bez lozinke.

Autentifikacija s GitHubom obično uključuje korištenje pristupnog tokena ili lozinke. Međutim, ove metode mogu biti nezgodne i nesigurne, osobito kada se GitHubu pristupa s više uređaja.

GitHub nudi opciju korištenja Secure Shell (SSH) za autentifikaciju. SSH predstavlja siguran mrežni protokol za udaljeni pristup računalu. Ova se značajka pokazala osobito vrijednom u situacijama koje zahtijevaju automatizaciju ili čest udaljeni pristup.

Razumijevanje SSH autentifikacije

Autentifikacija sa SSH uključuje korištenje kriptografski ključevi uspostaviti sigurnu vezu (tunel) između klijenta (lokalnog stroja) i poslužitelja (GitHub).

Kada koristi SSH za GitHub, korisnik generira par SSH ključeva — javni i privatni ključ. Javni ključ se učitava na korisnikov GitHub račun, dok privatni ključ ostaje sigurno pohranjen na lokalnom računalu korisnika.

Proces se može usporediti s konceptom brave i ključa. Javni ključ (zaključavanje) namijenjen je za otvoreno dijeljenje i sigurno pohranjivanje na strani poslužitelja. Služi kao pandan privatnom ključu, omogućujući poslužitelju provjeru identiteta vašeg lokalnog računala. Suprotno tome, privatni ključ (ključ) djeluje kao jedinstveni identifikator pohranjen isključivo na vašem lokalnom računalu, omogućujući uspješnu autentifikaciju s poslužiteljem.

Tijekom autentifikacije s GitHubom, vaš lokalni stroj predstavlja svoj privatni ključ kao dokaz identiteta. Poslužitelj provjerava odgovara li odgovarajući javni ključ povezan s vašim GitHub računom danom privatnom ključu. Ako se ključevi podudaraju, poslužitelj odobrava pristup, uspostavljajući šifrirano i sigurno veza za komunikaciju.

Postavljanje SSH-a za GitHub

U ovom odjeljku vidjet ćete kako postaviti SSH za autentifikaciju s GitHubom.

1. Generiranje para ključeva SSH

Proces generiranja para SSH ključeva prvi je korak prema korištenju SSH-a za autentifikaciju.

  1. Otvorite terminal ili naredbeni redak.
  2. Izvršite sljedeću naredbu za generiranje novog para SSH ključeva:
     ssh-keygen -t rsa -b 4096 -C "vašapoš[email protected]"
  3. Od vas će se tražiti da unesete lokaciju datoteke za spremanje para ključeva. Pritisnite Unesi da biste prihvatili zadanu lokaciju (~/.ssh/id_rsa) ili naveli prilagođenu lokaciju.
     > Generiranje para ključeva javni/privatni RSA.
     > Unesite datoteku ukoji za spremanje ključa (/home/vagrant/.ssh/id_rsa):
  4. Zatim će se od vas tražiti da unesete zaporku. Iako nije obavezno, dodavanje zaporke služi kao dodatna razina sigurnosti. Provjerite jeste li zapamtili svoju šifru.
     > Unesite zaporku (prazno za bez šifre): 
     > Ponovno unesite istu šifru:
  5. Nakon generiranja para ključeva, trebali biste vidjeti dvije datoteke na navedenom mjestu. id_rsa (privatni ključ) i id_rsa.pub (javni ključ).
     > Vaša identifikacija je spremljena u /home/vagrant/.ssh/id_rsa.
     > Vaš javni ključ je spremljen u /home/vagrant/.ssh/id_rsa.pub.
  6. Nakon završetka, prikazuju se otisak ključa i nasumična slika.
  7. Na kraju, trebat će vam sadržaj javnog ključa za dodavanje na GitHub. Pokrenite sljedeću naredbu da biste dobili sadržaj:
     mačka ~/.ssh/id_rsa.pub

Svakako navedite stazu (~/.ssh/id_rsa.pub u mom slučaju) koju ste koristili prilikom stvaranja ključeva.

Kopirajte sadržaj na sigurno i privremeno mjesto za kasniju upotrebu.

2. Dodavanje javnog ključa na GitHub

Sada kada ste generirali par SSH ključeva, morate dodati javni ključ svom GitHub računu.

  1. Prijavite se na svoj GitHub račun i idite na svoj račun postavke.
  2. Kliknite na SSH i GPG ključevi nalazi se na lijevoj bočnoj traci.
  3. Kliknite na Novi SSH ključ.
  4. Dajte svoj SSH ključ a Titula.
  5. Zalijepite sadržaj javnog ključa u Ključ polje.
  6. Na kraju kliknite na Dodaj SSH ključ da biste spremili SSH ključ na svoj GitHub račun.

Ovim ste uspješno izvezli javni ključ na svoj GitHub račun.

3. Konfiguriranje SSH agenta

SSH agent je program koji pomaže upravljati SSH ključevima i pruža siguran način za njihovo pohranjivanje i korištenje. Djeluje kao posrednik između vašeg lokalnog računala i udaljenog poslužitelja tijekom SSH autentifikacije. To vam omogućuje upravljanje višestrukim SSH ključevima za različite GitHub račune.

  1. Provjerite radi li SSH agent.
     $ eval"$(ssh-agent -s)"
     > Agent pid 2757
  2. Dodajte privatni ključ SSH agentu.
     $ ssh-dodaj ~/.ssh/id_rsa
     > Unesite zaporku za /home/vagrant/.ssh/id_rsa:
     > Dodan identitet: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Uspješno ste konfigurirali SSH agenta za upravljanje vašim ključevima.

4. Testiranje SSH veze

Sada možete testirati da provjerite je li vaša SSH veza ispravno postavljena i možete se autentificirati na GitHubu koristeći SSH.

  • Pokrenite naredbu u nastavku da testirate SSH vezu na GitHub;
     ssh -T [email protected]
    ako sve bude u redu, vidjet ćete upozorenje u vezi s otiskom prsta. Potvrdite otisak prsta i tip Da nastaviti.
     > Autentičnost domaćina 'github.com (140.92.130.4)' limenkane može se uspostaviti.
    > Otisak ključa ECDSA je SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Jeste li sigurni da želite nastaviti povezivanje (da/ne)?
  • Pri tipkanju Da, vidjet ćete izlaz sličan onom u nastavku.
     > Upozorenje: Trajno dodano 'github.com, 140.92.130.4' (ECDSA) na popis poznatih hostova.
    > Bok princewillingoo! VasUspješno ste se autentificirali, ali GitHub ne omogućuje pristup ljusci.

Ovo pokazuje da je provjera autentičnosti bila uspješna.

Upravljanje spremištima pomoću SSH-a

Konfiguracija SSH-a omogućuje vam da upravljate svojim spremištima bez potrebe da brinete o problemima s lozinkama i pristupnim tokenima.

Postavljanje udaljenog URL-a

git daljinski postaviti-url porijeklo [email protected]:/.git

Kloniranje spremišta

git klon [email protected]:/.git

Guranje promjena u spremište

git push izvor 

Povlačenje promjena iz repozitorija

git povuci porijeklo 

Prednosti SSH-a u odnosu na autentifikaciju lozinkom

Korištenje SSH-a za provjeru autentičnosti nudi nekoliko značajnih prednosti u odnosu na tradicionalne metode provjere autentičnosti temeljene na lozinci. Ovo uključuje:

  • SSH provjera autentičnosti eliminira potrebu za lozinkama, smanjujući rizik od krađe vjerodajnica.
  • Korištenje kriptografskih ključeva čini ga otpornijim na napadi brutalnom silom u usporedbi s lozinkama.
  • Ako je vaš privatni ključ ugrožen, možete ga opozvati i zamijeniti, čineći tako ugroženi ključ beskorisnim.

Iz tog razloga, SSH provjera autentičnosti obično je bolja opcija u usporedbi s provjerom autentičnosti lozinkom.

Najbolji primjeri iz prakse i rješavanje problema

Kako bi se osiguralo glatko i sigurno postavljanje SSH-a, potrebno je slijediti najbolje prakse i biti svjestan uobičajenih problema koji se mogu pojaviti i načina za njihovo rješavanje.

  1. Uvijek postavite šifru za stvaranje dodatnog sloja sigurnosti.
  2. Vježbajte čestu rotaciju ključeva i sigurnosne kopije.
  3. Potvrdite svaki korak kako biste izbjegli pogreške dopuštenja ili netočnu konfiguraciju SSH agenta.

Pridržavajući se ovih najboljih praksi možete pouzdano koristiti SSH autentifikaciju za GitHub.

Svestranost SSH-a

SSH se intenzivno koristi u drugim područjima za daljinsko upravljanje poslužiteljima, mikrokontrolerima i mrežnim uređajima jer omogućuje siguran pristup na sučelje naredbenog retka (CLI), omogućujući korisnicima izvođenje različitih zadataka, konfiguriranje postavki, prijenos datoteka i rješavanje problema pitanja.