Používanie SSH na autentifikáciu bez hesla GitHub


Ušetrite čas prihlasovaním na GitHub cez SSH pomocou autentifikácie bez hesla.

Autentifikácia pomocou GitHub zvyčajne zahŕňa použitie prístupového tokenu alebo hesla. Tieto metódy však môžu byť nepohodlné a neisté, najmä pri prístupe na GitHub z viacerých zariadení.

GitHub poskytuje možnosť použiť na autentifikáciu Secure Shell (SSH). SSH predstavuje bezpečný sieťový protokol pre vzdialený prístup k počítaču. Táto funkcia sa osvedčí najmä v situáciách, ktoré vyžadujú automatizáciu alebo častý vzdialený prístup.

Pochopenie autentifikácie SSH

Autentifikácia pomocou SSH zahŕňa použitie kryptografických kľúčov na vytvorenie zabezpečeného spojenia (tunela) medzi klientom (lokálnym počítačom) a serverom (GitHub).

Keď používate SSH pre GitHub, používateľ vygeneruje pár kľúčov SSH – verejný kľúč a súkromný kľúč. Verejný kľúč sa nahrá do účtu používateľa GitHub, zatiaľ čo súkromný kľúč zostáva bezpečne uložený na lokálnom počítači používateľa.

Tento proces možno prirovnať ku konceptu zámku a kľúča. Verejný kľúč (zámok) je určený na otvorené zdieľanie a bezpečné uloženie na strane servera. Slúži ako náprotivok k súkromnému kľúču, ktorý umožňuje serveru overiť identitu vášho lokálneho počítača. Naopak, súkromný kľúč (kľúč) funguje ako jedinečný identifikátor uložený výlučne na vašom lokálnom počítači, čo umožňuje úspešnú autentifikáciu so serverom.

Počas overovania pomocou GitHub váš lokálny počítač prezentuje svoj súkromný kľúč ako dôkaz identity. Server skontroluje, či sa zodpovedajúci verejný kľúč priradený k vášmu účtu GitHub zhoduje s daným súkromným kľúčom. Ak sa kľúče zhodujú, server udelí prístup a vytvorí šifrované a bezpečné spojenie na komunikáciu.

Nastavenie SSH pre GitHub

V tejto časti uvidíte, ako nastaviť SSH na autentifikáciu pomocou GitHub.

1. Generovanie páru kľúčov SSH

Proces generovania páru kľúčov SSH je prvým krokom k využívaniu SSH na autentifikáciu.

  1. Otvorte terminál alebo príkazový riadok.
  2. Vykonajte nasledujúci príkaz na vygenerovanie nového páru kľúčov SSH:

     ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
    
  3. Budete vyzvaní na zadanie umiestnenia súboru na uloženie páru kľúčov. Stlačením klávesu Enter akceptujte predvolené umiestnenie (~/.ssh/id_rsa) alebo zadajte vlastné umiestnenie.

     > Generating public/private rsa key pair.
     > Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
    
  4. Ďalej budete požiadaní o zadanie prístupovej frázy. Hoci je voliteľné, pridanie prístupovej frázy slúži ako dodatočná úroveň zabezpečenia. Uistite sa, že si zapamätáte svoju prístupovú frázu.

     > Enter passphrase (empty for no passphrase): 
     > Enter same passphrase again:
    
  5. Po vygenerovaní páru kľúčov by ste mali vidieť dva súbory v určenom umiestnení. id_rsa (súkromný kľúč) a id_rsa.pub (verejný kľúč).

     > Your identification has been saved in /home/vagrant/.ssh/id_rsa.
     > Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
    
  6. Po dokončení sa zobrazí odtlačok prsta kľúča a obrázok náhodného obrázka.
  7. Nakoniec budete potrebovať obsah verejného kľúča na pridanie na GitHub. Ak chcete získať obsah, spustite nasledujúci príkaz:

     cat ~/.ssh/id_rsa.pub
    

Nezabudnite zadať cestu (v mojom prípade ~/.ssh/id_rsa.pub), ktorú ste použili pri vytváraní kľúčov.

Skopírujte obsah na bezpečné a dočasné miesto pre neskoršie použitie.

2. Pridanie verejného kľúča na GitHub

Teraz, keď ste vygenerovali pár kľúčov SSH, musíte pridať verejný kľúč do svojho účtu GitHub.

  1. Prihláste sa do svojho účtu GitHub a prejdite do Nastavenia svojho účtu.
  2. Kliknite na Kľúče SSH a GPG umiestnené na ľavom bočnom paneli.

  3. Kliknite na Nový kľúč SSH.
  4. Dajte svojmu kľúču SSH Názov.
  5. Prilepte obsah verejného kľúča do poľa Kľúč.

  6. Nakoniec kliknite na Pridať kľúč SSH, čím uložíte kľúč SSH do svojho účtu GitHub.

Pomocou nich ste úspešne exportovali verejný kľúč do svojho účtu GitHub.

3. Konfigurácia agenta SSH

Agent SSH je program, ktorý pomáha spravovať kľúče SSH a poskytuje bezpečný spôsob ich ukladania a používania. Funguje ako prostredník medzi vaším lokálnym počítačom a vzdialeným serverom počas overovania SSH. To vám umožňuje spravovať viacero kľúčov SSH pre rôzne účty GitHub.

  1. Uistite sa, že je spustený agent SSH.

     $ eval "$(ssh-agent -s)"
     > Agent pid 2757
    
  2. Pridajte súkromný kľúč k agentovi SSH.

     $ ssh-add ~/.ssh/id_rsa
     > Enter passphrase for /home/vagrant/.ssh/id_rsa: 
     > Identity added: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)
    

Úspešne ste nakonfigurovali agenta SSH na správu vašich kľúčov.

4. Testovanie pripojenia SSH

Teraz môžete otestovať, či je vaše pripojenie SSH nastavené správne, a môžete sa overiť na GitHub pomocou SSH.

  • Spustite príkaz uvedený nižšie a otestujte pripojenie SSH k GitHub;

      ssh -T git@github.com
    
      > The authenticity of host 'github.com (140.92.130.4)' can't be established.
      > ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
      > Are you sure you want to continue connecting (yes/no)?
    
  • Po zadaní áno uvidíte výstup podobný tomu nižšie.

      > Warning: Permanently added 'github.com,140.92.130.4' (ECDSA) to the list of known hosts.
      > Hi princewillingoo! You've successfully authenticated, but GitHub does not provide shell access.
    

To ukazuje, že autentifikácia bola úspešná.

Správa repozitárov pomocou SSH

Konfigurácia SSH vám umožňuje spravovať vaše úložiská bez toho, aby ste sa museli obávať problémov s heslami a prístupovými tokenmi.

Nastavenie vzdialenej adresy URL

git remote set-url origin git@github.com:<username>/<repository>.git

Klonovanie úložiska

git clone git@github.com:<username>/<repository>.git

Prenos zmien do odkladacieho priestoru

git push origin <branch>

Preberanie zmien z odkladacieho priestoru

git pull origin <branch>

Výhody overovania SSH cez heslo

Použitie SSH na autentifikáciu ponúka niekoľko pozoruhodných výhod oproti tradičným metódam autentifikácie založenej na hesle. Toto zahŕňa:

  • Autentifikácia SSH eliminuje potrebu hesiel, čím sa znižuje riziko krádeže poverení.
  • Použitie kryptografických kľúčov ho robí odolnejším voči útokom hrubou silou v porovnaní s heslami.
  • Ak je váš súkromný kľúč ohrozený, môžete ho odvolať a nahradiť, čím sa napadnutý kľúč stane zbytočným.

Z tohto dôvodu má autentifikácia SSH tendenciu byť lepšou voľbou v porovnaní s autentifikáciou heslom.

Osvedčené postupy a riešenie problémov

Na zabezpečenie hladkého a bezpečného nastavenia SSH je potrebné dodržiavať osvedčené postupy a byť si vedomý bežných problémov, ktoré sa môžu vyskytnúť, a spôsobov ich riešenia.

  1. Vždy nastavte prístupovú frázu, aby ste vytvorili ďalšiu vrstvu zabezpečenia.
  2. Praktizujte časté striedanie kľúčov a zálohovanie.
  3. Potvrďte každý krok, aby ste sa vyhli chybám povolení alebo nesprávnej konfigurácii agenta SSH.

Dodržiavaním týchto osvedčených postupov môžete s istotou využívať autentifikáciu SSH pre GitHub.

Všestrannosť SSH

SSH sa vo veľkej miere používa v iných oblastiach na vzdialenú správu serverov, mikrokontrolérov a sieťových zariadení, pretože umožňuje bezpečný prístup k rozhraniu príkazového riadka (CLI), čo umožňuje používateľom vykonávať rôzne úlohy, konfigurovať nastavenia, prenášať súbory a odstraňovať problémy.