Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

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 - Git

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:

Dashboard - Git

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:

Pravé menu - Git

Kliknite na možnosť Your profile. Budeme presmerovaní na náš verejný profil:

Ukážka verejného profilu na GitHube - Git

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:

Ponuka ponuky - Git

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):

Menu na vytvorenie tokenu - Git

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:

Vytvorenie tokenu a nastavenie oprávnení - Git

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:

Vytvorenie tokenu a nastavenie oprávnení - Git

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:

Nastavenie kľúčov - Git

Zobrazený formulár vyplníme nasledovne:

Vytvorenie SSH kľúča - Git

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.


 

Predchádzajúci článok
Git - Kolízia medzi vetvami
Všetky články v sekcii
Git
Preskočiť článok
(neodporúčame)
Git - Vzdialený repositár - Tvorba a nastavenie repositára
Článok pre vás napísal Patrik Valkovič
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Aktivity