NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Mezi 11:00 až cca 12:00 proběhne odstávka sítě z důvodu aktualizace. Web bude po celou dobu nedostupný.

Lekce 10 - Git - Vzdálený repozitář - 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 repozitářem. Představíme si GitHub, ve 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ý repozitář

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

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

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

GitHub

Github - Git

GitHub je webová platforma pro správu verzí kódu. Umožňuje 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 pro ukládání repozitářů na svých serverech. Repozitář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. Jsou to například:

  • 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í – Platforma 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 GitHub plně využívat, je třeba mít založený účet. Pokud ho ještě nemáme, pak na stránce GitHub klikneme na Sign up a vytvoříme si jej. Po vytvoření profilu potvrdíme jeho aktivaci prostřednictvím odkazu, který obdržíme na zadaný e-mail.

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 k dispozici rychlý přístup do našich repozitářů, výpis aktivit uživatelů, organizací nebo repozitářů, které sledujeme. GitHub nám také nabízí možnost nahlédnout do populárních repozitářů.

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 v interakci s GitHubem klíčovou roli. Poskytuje přehled o aktivitách, repozitáří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ízejí:

  • Overview – Zobrazuje základní informace a sumarizaci profilu uživatele.
  • Repositories – Zobrazuje seznam všech repozitářů 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í repozitář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 e-mailových adres s naším účtem, zapnout dvoufaktorovou 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. Také zde 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é repozitáře, je důležité nastavit Git pro práci s GitHubem. GitHub umožňuje připojení k repozitářům pomocí protokolu HTTPS a SSH.

Protokol HTTPS

Připojení ke vzdálenému repozitáři pomocí protokolu HTTPS vyžaduje zadání uživatelského jména a hesla při každém přístupu k repozitáři. Ačkoli je přenos dat pomocí protokolu HTTPS š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 repozitář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 repozitář na GitHub nebo jej aktualizovat 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. Chceme-li pracovat s repozitář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. Pokud bychom například chtěli naklonovat repozitář příkazem git clone, byli bychom vyzváni k zadání uživatelského jména a hesla. Místo hesla bychom však zadali svůj osobní přístupový token:

git clone https://github.com/<uživatelské jméno>/<repozitář>
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 požádáni, abychom opět zadali 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 tedy nastavili jednu hodinu.

Protokol SSH

Protokol SSH využívá pro autentizaci na rozdíl od protokolu HTTPS SSH klíče. To poskytuje vyšší úroveň zabezpečení i 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 GitHub účtu. Otevřeme příkazovou řádku a vygenerujeme nový SSH klíč.

Po spuštění příkazu ssh-keygen po nás bude generátor SSH klíče chtít vybrat cíl, 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 jej nalezneme 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 nebudeme zasahovat a ponecháme zde 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, ve 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 GitHubem 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 GitHubem spojovat pomocí protokolu SSH, Git bude automaticky číst klíče z adresáře /.ssh.

V příští lekci, Git - Vzdálený repozitář - Vytvoření a nastavení repozitáře, si vytvoříme vzdálený repozitář 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ý repozitář - Vytvoření a nastavení repozitáře
Článek pro vás napsal Patrik Valkovič
Avatar
Uživatelské hodnocení:
239 hlasů
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Aktivity