Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 10 - Git - Vzdálený repositář - GitHub a protokoly HTTPS a SSH

V minulé lekci, Git - Kolize mezi větvemi, jsme se zabývali kolizemi při slučování větví.

V dnešním Git tutoriálu si ukážeme práci se vzdáleným repositářem. Představíme si GitHub, v kterém si založíme profil. Ukážeme si, jak nastavit Git pro připojení přes protokoly HTTPS a SSH. Pro SSH si vygenerujeme osobní přístupový token a klíč.

Co je to vzdálený repositář

Vzdálený repositář (remote repo) je repositář umístěný na vzdáleném serveru. Po uložení změn do našeho lokálního repositáře můžeme tyto změny poslat/nahrát na vzdálený server, aby byly dostupné pro ostatní spolupracovníky nebo uživatele. Tím umožníme sdílení a koordinaci práce mezi různými vývojáři.

Vzdálený repositář jsme si uvedli v lekci Git - Historie a principy.

Ukázky práce se vzdálenými repositáři si předvedeme na webové platformě GitHub.

GitHub

Github - Git

GitHub je webová platforma pro správu verzí kódu umožňující vývojářům spolupracovat na projektech, sledovat změny v kódu, řešit problémy a sdílet svůj software. GitHub rozšiřuje možnosti Gitu tím, že poskytuje uživatelům prostor na ukládání repositářů na svých serverech. Repositáře na GitHubu jsou úložiště pro projekty, do kterých mohou vývojáři ukládat svůj kód, spravovat změny a vést diskuse o případných vylepšeních nebo chybách.

Využití GitHubu

GitHub nabízí širokou škálu nástrojů a funkcí, které umožňují jednoduchou a efektivní správu projektů, sdílení kódu a spolupráci v reálném čase. Například to jsou:

  • Spolupráce a sdílení kódu - Vývojáři mohou pracovat společně na projektech a navrhovat změny pomocí pull requestů.
  • Správa verzí a sledování změn - GitHub umožňuje sledovat každou změnu provedenou v kódu.
  • Automatizace pomocí integrací - Nabízí integrace s nástroji, jako je CI/CD, pro automatizaci vývoje a nasazení kódu.
  • Správa projektů a issues - Vývojáři mohou používat nástroje pro sledování úkolů a problémů v projektu.
  • GitHub pages - umožňují hostovat jednoduché webové stránky, což je užitečné pro prezentaci projektů a dokumentaci.

Vytvoření účtu na GitHubu

Předtím, než budeme moci plně využívat GitHub, je třeba mít účet. Pokud ho ještě nemáme, pak na stránce GitHub klikneme na Sign up a vytvoříme si ho. Po vytvoření profilu potvrdíme jeho aktivaci prostřednictvím odkazu, který obdržíme na zadaný email.

Dashboard - Domovská stránka

Po úspěšném zaregistrování na GitHubu se ocitneme na domovské stránce neboli dashboardu:

Dashboard - Git

Zde máme rychlý přístup do našich repositářů, výpis aktivit uživatelů, organizací nebo repositářů které sledujeme. GitHub nám také nabízí možnost nakouknout do populárních repositářů.

Veřejný profil

Nyní si ukážeme, jak zobrazit náš veřejný profil na GitHubu. Přejdeme do horní lišty na pravé straně a klikneme na ikonu s profilovým obrázkem. Tím se otevře rozbalovací menu, které nabízí několik možností, včetně přístupu k našemu profilu:

Pravé menu - Git

Klikneme na možnost Your profile. Budeme přesměrováni na náš veřejný profil:

Ukázka veřejného profilu na GitHubu - Git

Profil uživatele hraje klíčovou roli v interakci s GitHubem. Poskytuje přehled o aktivitách, repositářích a projektech, které daný uživatel spravuje nebo do nich přispívá.

Navigační pole se nám rozšířilo o odkazy na Repositories, Projects, Packages a Stars:

Uřivatelská nabídka - Git

Tyto odkazy nám nabízí:

  • Overview - Zobrazuje základní informace a sumarizaci profilu uživatele.
  • Repositories - Zobrazuje seznam všech repositářů vytvořených nebo naklonovaných uživatelem.
  • Projects - Poskytuje přehled všech projektů vytvořených uživatelem.
  • Packages - Nabízí přístup k balíčkům uživatele.
  • Stars - Zobrazí repositáře, které uživatel označil hvězdou jako oblíbené.

Nastavení našeho účtu

Do nastavení účtu se dostaneme opětovným kliknutím na ikonu s profilovým obrázkem a výběrem Settings. Zde máme možnost upravovat a konfigurovat různá nastavení spojená s naším účtem a jeho zabezpečením.

Můžeme změnit, upravit nebo spojit více emailových adres s naším účtem, zapnout dvou faktorovou autentizaci, vytvořit a načíst SSH a GPG klíče, změnit informace veřejného profilu, zobrazit aktivitu přihlášení, smazat účet nebo stáhnout osobní data a mnoho dalšího. Zde také nalezneme sekci Developer settings, kterou využijeme pro správu přístupových tokenů.

GitHub a protokoly HTTPS a SSH

Než budeme vytvářet vzdálené repositáře, je důležité nastavit Git pro práci s GitHubem. GitHub umožňuje připojení k repositářům pomocí protokolu HTTPS a SSH.

Protokol HTTPS

Připojení ke vzdálenému repositáři pomocí protokolu HTTPS vyžaduje zadání uživatelského jména a hesla při každém přístupu k repositáři. Ačkoli přenos dat pomocí protokolu HTTPS je šifrovaný, což poskytuje určitou úroveň zabezpečení, zadání uživatelského jména a hesla může být méně bezpečné a pohodlné zejména při dlouhodobé práci s repositářem.

Od srpna 2021 GitHub odebral podporu pro používání hesla k účtu z příkazové řádky Gitu. HTTPS lze i nadále používat, ale vyžaduje nastavení osobního přístupového tokenu (PAT) místo hesla. Pokud bychom se pokusili odeslat nebo aktualizovat repositář na GitHub pomocí hesla účtu, zobrazí se nám následující zpráva:

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
Osobní přístupový token (PAT)

Osobní přístupový token funguje jako sekundární heslo. Je ale jedinečný, bezpečnější a umožňuje nastavení oprávnění.

Vytvoření osobního tokenu

Nyní si token (PAT) vytvoříme. Vrátíme se do nastavení Settings a v levém menu vybereme možnost Developer settings. Budeme přesměrováni na správu tokenů. Pak v menu klikneme na Personal access tokens a Tokens (classic):

Menu pro vytvoření tokenu - Git

Klikneme na Generate new token a vybereme možnost Generate new token (classic). Nový token pojmenujeme a zadáme mu datum vypršení platnosti:

Vytvoření tokenu a nastavení oprávnění - Git

Nakonec vybereme povolení, které tento token obsahuje. Pokud chceme pracovat s repositáři zaškrtneme volbu repo. Token vytvoříme kliknutím na Generate token, čímž získáme token v podobném formátu:

ghp_aaa4bbbbrccccmFu00LP11ajKddsssT11

Přístupové tokeny nikdy nezveřejňujeme.

Využití osobního tokenu

Token využijeme u přihlášení při provádění operací Gitu přes protokol HTTPS. Kdybychom například chtěli naklonovat repositář příkazem git clone a byli bychom vyzváni k zadání uživatelského jména a hesla, zadali bychom místo hesla svůj osobní přístupový token:

git clone https://github.com/<uživatelské jméno>/<repositář>
Username: [uživatelské jméno]
Password: [osobní přístupový token]

Git automaticky uloží přihlašovací údaje do mezipaměti po dobu 15 minut. Po uplynutí této doby budeme vyžádání opět zadat uživatelské jméno v četně osobního tokenu. Tuto dobu uložení v mezipaměti můžeme změnit následujícím příkazem:

MINGW64:/c/mujgit
ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main)
$ git config --global credential.helper "cache --timeout=3600"
ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main)
$

Čas se zadává v sekundách. V kódu výše jsme nastavili jednu hodinu.

Protokol SSH

Protokol SSH, na rozdíl od protokolu HTTPS, využívá pro autentizaci SSH klíče. To poskytuje vyšší úroveň bezpečnosti a pohodlí. SSH klíče jsou generovány. Při jejich použití není třeba opakovaně zadávat heslo.

Generování SSH klíče

Abychom se mohli připojit přes SSH, musíme si nejprve vygenerovat SSH klíč a připojit ho k našemu účtu GitHub. Otevřeme příkazovou řádku a vygenerujeme nový SSH klíč.

Po spuštění příkazu ssh-keygen, generátor SSH klíče po nás bude chtít vybrat, kam klíče uložit a takzvanou passphrase neboli heslo:

MINGW64:/c/mujgit
ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (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\ItNetwork\.ssh\id_rsa
Your public key has been saved in: C:\Users\ItNetwork\.ssh\id_rsa.pub
The key fingerprint is: <hash klíče>

ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main)
$

Nyní máme vygenerovaný SSH klíč. V operačním systému Windows nalezneme vygenerovaný klíč ve složce C:\Users\<Uživatel>\.ssh\, v Linuxu pak ve složce /home/<Uživatel>/.ssh.

SSH klíče se vždy generují jako dvojice veřejných id_rsa.pub a privátních id_rsa klíčů. Je nesmírně důležité, abychom privátní id_rsa klíč nikdy nezveřejňovali.

Otevřeme soubor id_rsa.pub a zkopírujeme jeho obsah.

Přidání SSH klíče na Github

V nastavení účtu se přesuneme do sekce SHH and GPG keys, kde klikneme na New SSH key:

Nastavení klíčů - Git

Zobrazený formulář vyplníme následovně:

Vytvoření SSH klíče - Git

Do pole:

  • Title vložíme nějaký náš název klíče,
  • Key type ponecháme Authentication Key,
  • Key vložíme obsah ze souboru id_rsa.pub.
Testování funkčnosti SSH klíče

Fungování SSH klíče si nyní ověříme. Otevřeme příkazovou řádku, v které spustíme příkaz ssh -T [email protected] a zadáme passphrase:

MINGW64:/c/mujgit
ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main)
$ ssh -T [email protected]

Enter passphrase for key /c/Users/<Uživatel>.ssh/id_rsa:

Po zadání hesla se nám vrátí následující zpráva, která oznamuje že SSH spojení s GitHub proběhlo v pořádku:

MINGW64:/c/mujgit
ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main)
$ ssh -T [email protected]
Enter passphrase for key /c/Users/<Uživatel>.ssh/id_rsa: <passphrase>

Hi [Vaše uživatelské jméno] ! You've successfully authenticated, but GitHub does not provide shell access.
ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main)
$

Pokud se budeme s GitHub spojovat pomocí protokolu SSH, Git automaticky bude číst klíče z adresáře /.ssh

V příští lekci, Git - Vzdálený repositář - Vytvoření a nastavení repositáře, si vytvoříme vzdálený repositář a ukážeme si jeho důležitá nastavení včetně vytvoření issue, odkazu a přístupu pro uživatele.


 

Předchozí článek
Git - Kolize mezi větvemi
Všechny články v sekci
Git
Přeskočit článek
(nedoporučujeme)
Git - Vzdálený repositář - Vytvoření a nastavení repositáře
Článek pro vás napsal Patrik Valkovič
Avatar
Uživatelské hodnocení:
222 hlasů
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Aktivity