10. diel - Git - Vzdialený repositár - GitHub a protokoly HTTPS a SSH
V minulej lekcii, Git - Kolízia medzi vetvami, sme sa zaoberali kolíziami pri zlučovaní vetiev.
V dnešnom Git tutoriále si ukážeme prácu so vzdialeným repositárom. Predstavíme si GitHub, v ktorom si založíme profil. Ukážeme si, ako nastaviť Git na pripojenie cez protokoly HTTPS a SSH. Pre SSH si vygenerujeme osobný prístupový token a kľúč.
Čo je to vzdialený repositár
Vzdialený repositár (remote repo) je repositár umiestnený na vzdialenom serveri. Po uložení zmien do nášho lokálneho repositára môžeme tieto zmeny poslať/nahrať na vzdialený server, aby boli dostupné pre ostatných spolupracovníkov alebo používateľov. Tým umožníme zdieľanie a koordináciu práce medzi rôznymi vývojármi.
Vzdialený repositár sme si uviedli v lekcii Git - História a princípy.
GitHub
Ukážky práce so vzdialenými repositármi si predvedieme na webovej platforme GitHub:
GitHub je webová platforma pre správu verzií kódu umožňujúca vývojárom spolupracovať na projektoch, sledovať zmeny v kóde, riešiť problémy a zdieľať svoj softvér. GitHub rozširuje možnosti Gitu tým, že poskytuje používateľom priestor na ukladanie repositárov na svojich serveroch. Repositára na GitHube sú úložisko pre projekty, do ktorých môžu vývojári ukladať svoj kód, spravovať zmeny a viesť diskusie o prípadných vylepšeniach alebo chybách.
Využitie GitHubu
GitHub ponúka širokú škálu nástrojov a funkcií, ktoré umožňujú jednoduchú a efektívnu správu projektov, zdieľanie kódu a spoluprácu v reálnom čase. Napríklad to sú:
- Spolupráca a zdieľanie kódu - Vývojári môžu pracovať spoločne na projektoch a navrhovať zmeny pomocou pull requestov.
- Správa verzií a sledovanie zmien - GitHub umožňuje sledovať každú zmenu vykonanú v kóde.
- Automatizácia pomocou integrácií - Ponúka integráciu s nástrojmi, ako je CI/CD, pre automatizáciu vývoja a nasadenie kódu.
- Správa projektov a issues - Vývojári môžu používať nástroje na sledovanie úloh a problémov v projekte.
- GitHub pages - umožňujú hosťovať jednoduché webové stránky, čo je užitočné na prezentáciu projektov a dokumentáciu.
Vytvorenie účtu na GitHube
Predtým, než budeme môcť plne využívať GitHub, je potrebné mať účet. Pokiaľ ho ešte nemáme, potom na stránke GitHub klikneme na Sign up a vytvoríme si ho. Po vytvorení profilu potvrdíme jeho aktiváciu prostredníctvom odkazu, ktorý obdržíme na zadaný email.
Dashboard - Domovská stránka
Po úspešnom zaregistrovaní na GitHube sa ocitneme na domovskej stránke alebo dashboarde:
Tu máme rýchly prístup do našich repositárov, výpis aktivít užívateľov, organizácií alebo repositárov, ktoré sledujeme. GitHub nám taktiež ponúka možnosť nazrieť do populárnych repositárov.
Verejný profil
Teraz si ukážeme, ako zobraziť náš verejný profil na GitHubu. Prejdeme do hornej lišty na pravej strane a klikneme na ikonu s profilovým obrázkom. Tým sa otvorí rozbaľovacie menu, ktoré ponúka niekoľko možností, vrátane prístupu k nášmu profilu:
Kliknite na možnosť Your profile. Budeme presmerovaní na náš verejný profil:
Profil užívateľa zohráva kľúčovú úlohu v interakcii s GitHubom. Poskytuje prehľad o aktivitách, repositároch a projektoch, ktoré daný používateľ spravuje alebo do nich prispieva.
Navigačné pole sa nám rozšírilo o odkazy na Repositories, Projects, Packages a Stars:
Tieto odkazy nám ponúkajú:
- Overview - Zobrazuje základné informácie a sumarizáciu profilu užívateľa.
- Repositories - Zobrazuje zoznam všetkých repositárov vytvorených alebo naklonovaných užívateľom.
- Projects - Poskytuje prehľad všetkých projektov vytvorených užívateľom.
- Packages - Ponúka prístup k balíčkom užívateľa.
- Stars - Zobrazí repositára, ktoré užívateľ označil hviezdou ako obľúbené.
Nastavenie nášho účtu
Do nastavenia účtu sa dostaneme opätovným kliknutím na ikonu s profilovým obrázkom a výberom Settings. Tu máme možnosť upravovať a konfigurovať rôzne nastavenia spojené s naším účtom a jeho zabezpečením.
Môžeme zmeniť, upraviť alebo spojiť viac emailových adries s naším účtom, zapnúť dvoch faktorovú autentizáciu, vytvoriť a načítať SSH a GPG kľúče, zmeniť informácie verejného profilu, zobraziť aktivitu prihlásenia, zmazať účet alebo stiahnuť osobné dáta a mnoho ďalšieho. Tu tiež nájdeme sekciu Developer settings, ktorú využijeme na správu prístupových tokenov.
GitHub a protokoly HTTPS a SSH
Než budeme vytvárať vzdialených repositárov, je dôležité nastaviť Git pre prácu s GitHubom. GitHub umožňuje pripojenie k repositárom pomocou protokolu HTTPS a SSH.
Protokol HTTPS
Pripojenie k vzdialenému repositárovi pomocou protokolu HTTPS vyžaduje zadanie užívateľského mena a hesla pri každom prístupe k repositárovi. Hoci prenos dát pomocou protokolu HTTPS je šifrovaný, čo poskytuje určitú úroveň zabezpečenia, zadanie používateľského mena a hesla môže byť menej bezpečné a pohodlné najmä pri dlhodobej práci s repositárom.
Od augusta 2021 GitHub odobral podporu pre používanie hesla k účtu z príkazového riadka Gitu. HTTPS je možné aj naďalej používať, ale vyžaduje nastavenie osobného prístupového tokenu (PAT) namiesto hesla. Ak by sme sa pokúsili odoslať alebo aktualizovať repositár na GitHub pomocou hesla účtu, zobrazí sa nám nasledujúca správa:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
Osobný prístupový token (PAT)
Osobný prístupový token funguje ako sekundárne heslo. Je ale jedinečný, bezpečnejší a umožňuje nastavenie oprávnenia.
Vytvorenie osobného tokenu
Teraz si token (PAT) vytvoríme. Vrátime sa do nastavenia Settings a v ľavom menu vyberieme možnosť Developer settings. Budeme presmerovaní na správu tokenov. Potom v menu klikneme na Personal access tokens a Tokens (classic):
Klikneme na Generate new token a vyberieme možnosť Generate new token (classic). Nový token pomenujeme a zadáme mu dátum vypršania platnosti:
Nakoniec vyberieme povolenie, ktoré tento token obsahuje. Ak chceme pracovať s repositármi zaškrtneme voľbu repo. Token vytvoríme kliknutím na Generate token:
Tým získame token v podobnom formáte:
ghp_aaa4bbbbrccccmFu00LP11ajKddsssT11
Prístupové tokeny nikdy nezverejňujeme.
Využitie osobného tokenu
Token využijeme pri prihlásení pri vykonávaní operácií Gitu cez
protokol HTTPS. Keby sme napríklad chceli naklonovať repositár príkazom
git clone
a boli by sme vyzvaní na zadanie používateľského
mena a hesla, zadali by sme namiesto hesla svoj osobný prístupový token:
git clone https://github.com/<username>/<repository> Username: [username] Password: [personal access token]
Git automaticky uloží prihlasovacie údaje do medzipamäte po dobu 15 minút. Po uplynutí tejto doby budeme vyžiadanie opäť zadať užívateľské meno v vrátane osobného tokenu. Túto dobu uloženia v medzipamäti môžeme zmeniť nasledujúcim príkazom:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ git config --global credential.helper "cache --timeout=3600" IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $
Čas sa zadáva v sekundách. V kóde vyššie sme nastavili jednu hodinu.
Protokol SSH
Protokol SSH, na rozdiel od protokolu HTTPS, využíva pre autentizáciu SSH kľúče. To poskytuje vyššiu úroveň bezpečnosti a pohodlia. SSH kľúče sú generované. Pri ich použití nie je potrebné opakovane zadávať heslo.
Generovanie SSH kľúče
Aby sme sa mohli pripojiť cez SSH, musíme si najskôr vygenerovať SSH kľúč a pripojiť ho k nášmu účtu GitHub. Otvoríme príkazový riadok a vygenerujeme nový SSH kľúč.
Po spustení príkazu ssh-keygen
, generátor SSH kľúča po
nás bude chcieť vybrať, kam kľúče uložiť a takzvanú
passphrase
alebo heslo:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ ssh-keygen -t rsa -b 4096 -C "[email protected]" Generating public/private rsa key pair. Enter file in which to save the key: Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in: C:\Users\IctDemy\.ssh\id_rsa Your public key has been saved in: C:\Users\IctDemy\.ssh\id_rsa.pub The key fingerprint is: <key hash> IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $
Teraz máme vygenerovaný SSH kľúč. V operačnom systéme Windows nájdeme
vygenerovaný kľúč v zložke C:\Users\<User>\.ssh\
, v
Linuxe potom v zložke /home/<User>/.ssh
.
SSH kľúče sa vždy generujú ako dvojica verejných
id_rsa.pub
a privátnych id_rsa
kľúčov. Je
nesmierne dôležité, aby sme privátny id_rsa
kľúč nikdy
nezverejňovali.
Otvoríme súbor id_rsa.pub
a skopírujeme jeho obsah.
Pridanie SSH kľúče na Github
V nastavení účtu sa presunieme do sekcie SHH and GPG keys, kde klikneme na New SSH key:
Zobrazený formulár vyplníme nasledovne:
Do poľa:
- Title vložíme nejaký náš názov kľúča,
- Key type ponecháme Authentication Key,
- Key vložíme obsah zo súboru
id_rsa.pub
.
Testovanie funkčnosti SSH kľúča
Fungovanie SSH kľúča si teraz overíme. Otvoríme príkazový riadok, v
ktorom spustíme príkaz ssh -T [email protected]
a zadáme
passphrase
:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ ssh -T [email protected] Enter passphrase for key /c/Users/<User>.ssh/id_rsa:
Po zadaní hesla sa nám vráti nasledujúca správa, ktorá oznamuje že SSH spojenie s GitHub prebehlo v poriadku:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ ssh -T [email protected] Enter passphrase for key /c/Users/<User>.ssh/id_rsa: <passphrase> Hi [Your username] ! You've successfully authenticated, but GitHub does not provide shell access. IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $
Pokiaľ sa budeme s GitHub spájať pomocou protokolu SSH, Git automaticky
bude čítať kľúče z adresára /.ssh
V budúcej lekcii, Git - Vzdialený repositár - Tvorba a nastavenie repositára, si vytvoríme vzdialený repositár a ukážeme si jeho dôležité nastavenia vrátane vytvorenia issue, odkazu a prístupu pre užívateľov.