Jak nastavit ověřování bez hesla do soukromého úložiště GitHub?
Neustálé opakování stejných úkolů je pro programátory, jako jsme my, únavné a otravné, souhlasíte?
Jedním z těchto opakujících se úkolů je interakce se soukromým repozitářem na GitHubu. Jak to řešit? Určitě víte, o čem mluvím. Hledáte efektivní řešení a proto jste narazili na tento článek. Po jeho přečtení už nebudete muset dál hledat.
V tomto článku se zaměříme na to, jak přistupovat k soukromému repozitáři na GitHubu bez nutnosti zadávat heslo. Bez zbytečných průtahů můžeme začít.
Existují dva hlavní způsoby, jak se připojit k libovolnému repozitáři na GitHubu: HTTPS a SSH. Většina z vás zřejmě používá HTTPS. Nicméně, brzy zjistíte, že používání HTTPS pro klonování soukromých repozitářů není zrovna nejefektivnější.
Přístup zahrnuje klonování, nahrávání změn, stahování – zkrátka cokoliv, co souvisí s aktualizací vašeho repozitáře na vzdáleném serveru.
Pokud jde o veřejné repozitáře, tam není problém. Ale při přístupu k soukromým repozitářům je nutné se ověřit. Existuje několik způsobů, jak toho docílit.
Začněme s tím nejběžnějším…
Přístup přes HTTPS
Pravděpodobně jste se s metodou HTTPS již setkali a možná hledáte i jiné alternativy. Podívejme se stručně, jak pomocí HTTPS přistoupit k soukromému repozitáři.
- Zkopírujte odkaz na váš soukromý repozitář.
Soukromý repozitář GitHub
- Otevřete terminál nebo příkazový řádek na vašem počítači.
- Vložte příkaz `git clone` spolu s odkazem pro klonování soukromého repozitáře.
- Nezapomeňte odkaz nahradit adresou vašeho repozitáře.
- Systém vás vyzve k ověření. Musíte tedy zadat vaše přihlašovací údaje k účtu na GitHubu.
- Nejprve budete požádáni o zadání vašeho uživatelského jména GitHub. Zadejte ho a stiskněte Enter.

- Nyní je potřeba zadat heslo. Zadejte své heslo GitHub a opět stiskněte Enter.

A to je vše. Úspěšně jste naklonovali soukromý repozitář pomocí metody HTTPS. Nyní proveďte v repozitáři nějaké změny, uložte je a nahrajte na vzdálený server.
Všimli jste si něčeho?
Opětovně vyžaduje ověření.

Není to otravné a zdlouhavé zadávat přihlašovací údaje pokaždé, když pracujete se soukromým repozitářem?
Ano, je.
Nelze přece zadávat přihlašovací údaje GitHub pokaždé, když pracujete se svým soukromým repozitářem. Je to časově náročný proces, který zpomaluje vaši práci.
Existuje několik způsobů, jak se tohoto problému zbavit. Nejlepším řešením je použití SSH. Nicméně, podíváme se i na další metody. Projdeme si je postupně.
Konfigurace souboru .git
Všechny informace o verzích vašeho repozitáře jsou uloženy ve skrytém adresáři `.git`. Obsahuje konfigurační soubor, který umožňuje upravovat nastavení repozitáře. Obecně se to však nedoporučuje.
Jednou z možností, jak naklonovat soukromý repozitář, je přidat vaše uživatelské jméno a heslo přímo do URL repozitáře:
git clone https://<strong>uzivatelske_jmeno:heslo</strong>@github.com/<strong>uzivatelske_jmeno</strong>/<strong>nazev_repozitare</strong>.git
Nezapomeňte nahradit `uzivatelske_jmeno`, `heslo` a `nazev_repozitare` vašimi skutečnými údaji. Vzhledem k tomu, že jste v URL zadali přihlašovací údaje, nebude vyžadováno ověření, jak tomu bylo dříve.
Budeme se tedy držet výše uvedeného způsobu ověřování a podle toho aktualizujeme konfiguraci repozitáře. Podívejme se na jednotlivé kroky, jak se vyhnout opakovanému ověřování aktualizací URL.
- Otevřete adresář `.git` ve vašem naklonovaném repozitáři.

- Najděte soubor s názvem `config` a otevřete jej v libovolném textovém editoru.
- Uvnitř naleznete následující řádek s odkazem na váš repozitář.

- Aktualizujte URL přidáním svého uživatelského jména a hesla, jak je uvedeno výše.

Nyní opět proveďte v repozitáři nějakou změnu, uložte ji a nahrajte.
Všimli jste si něčeho?
Tentokrát by to nemělo vyžadovat vaše přihlašovací údaje GitHub. Problém jsme tedy vyřešili aktualizací konfigurace repozitáře.
Možná jste si ale všimli, že to není zrovna bezpečné. Odhalujete tímto způsobem svoje přihlašovací údaje. A tato metoda navíc nebude fungovat, pokud vaše heslo na GitHubu obsahuje znak `@`.
Existuje tedy několik zásadních nevýhod této metody. Proto ji raději ignorujme a pojďme se podívat na další.
Credential.helper
Credential.helper umožňuje trvale uložit vaše přihlašovací údaje do souboru `~/.git-credentials`.
Uloží vaše přihlašovací údaje při prvním zadání. Při dalším přístupu k soukromému repozitáři se nebude ptát na přihlašovací údaje, dokud jsou uloženy v souboru `~/git-credentials`. To je tedy jeden ze způsobů, jak se vyhnout problému. Podívejme se, jak to funguje v praxi.
- Nejprve musíme aktivovat možnost ukládání vašich přihlašovacích údajů pomocí příkazu `git config credential.helper store`.
- Po aktivaci se pokuste přihlásit do soukromého repozitáře pomocí vašeho uživatelského jména a hesla.
- Po zadání uživatelského jména a hesla se uloží do souboru `~/.git-credentials` ve formátu s vašimi přihlašovacími údaji GitHub.

Nyní proveďte opět stejný proces, abyste ověřili, zda to funguje správně. Aktualizujte, uložte a nahrajte změny. Jsem si jistý, že pokud jste postupovali podle výše uvedených kroků, nebudou vyžadovány přihlašovací údaje.
Zatím dobré…
Co když chcete přihlašovací údaje uložit jen na 4 hodiny, a ne navždy?
Credential.helper nabízí možnost dočasného uložení vašich přihlašovacích údajů na určitou dobu. K dočasnému ukládání používáme místo trvalého úložiště mezipaměť.
Ve výchozím nastavení ukládá mezipaměť vaše přihlašovací údaje po dobu 15 minut. Po této době vás git znovu požádá o přihlašovací údaje. Výchozí čas však můžeme změnit pomocí následujícího příkazu:
git config credential.helper 'cache --timeout={doba_v_sekundach}'
Nezapomeňte zadat čas v sekundách. Podívejme se, jak to funguje.
- Nejprve musíme aktivovat možnost ukládání vašich přihlašovacích údajů do mezipaměti pomocí příkazu `git config credential.helper cache`.
- Získejte přístup k soukromému repozitáři pomocí vašeho uživatelského jména a hesla.
- Po zadání uživatelského jména a hesla se vaše přihlašovací údaje k GitHubu uloží do mezipaměti na určitou dobu.
Nyní aktualizujte, uložte a nahrajte změny. Jak jsme slíbili, nebude to znovu vyžadovat vaše přihlašovací údaje.
Ukázali jsme vám příkazy pro práci s lokálním repozitářem inicializovaným pomocí git. Konfiguraci git můžeme aktualizovat globálně pro všechny projekty přidáním příznaku `--global` do výše uvedených příkazů.
Osobní přístupové tokeny
Osobní přístupové tokeny se používají k poskytnutí přístupu k GitHub API. Připomínají tokeny OAuth. Lze je tedy použít pro základní ověření místo hesla pro git. Můžeme tedy k řešení našeho problému využít osobní přístupové tokeny.
Podívejme se, jak na to.
- Přihlaste se ke svému účtu GitHub.
- Přejděte do Nastavení.

- Nyní v levém navigačním panelu vyberte „Nastavení vývojáře“.

- Kliknutím na „Osobní přístupové tokeny“ dosáhnete našeho cíle. Osobní přístupové tokeny uvidíte v následujícím formátu.

- Kliknutím na „Generovat nový token“ vytvoříte nový token.

- Zadejte popis tokenu. Můžete si to představit jako stručné poznámky, které vám pomohou si token zapamatovat.

- Vyberte oprávnění pro token. Programy, které používají token, budou mít přístup ke všem vybraným oprávněním. V našem případě vyberte `repo`.

- Přejděte dolů a klikněte na tlačítko „Generovat token“.

- Osobní přístupový token se zobrazí pouze jednou, jak je uvedeno níže. Váš osobní token již znovu neuvidíte. Zkopírujte si ho a bezpečně uložte. Můžete použít správce hesel.

- Úspěšně jste vytvořili osobní přístupový token.
- Nyní jej použijeme pro přístup k vašemu soukromému repozitáři.
- Aktualizujte URL repozitáře v souboru `.git/config` na `https://{personal_access_token}@github.com/vaše_uzivatelske_jmeno/nazev_soukromeho_repozitare.git`, podobně jako v první metodě.

Nyní se pokuste přistoupit k soukromému repozitáři.
Vyžadovalo to ověření?
Ne, pokud je token aktivní, nebudete muset zadávat ověření. Pojďme se podívat na poslední metodu řešení našeho problému.
SSH
SSH se používá k naší autentizaci. Celý dokument o SSH naleznete na GitHubu zde.
Myšlenka je jednoduchá. Vygenerujte si klíč SSH, přidejte ho ke svému účtu GitHub a užívejte si ověřování bez hesla.
Podívejme se podrobně na tyto tři kroky.
- Otevřete terminál nebo příkazový řádek na vašem počítači.
- Zadejte příkaz `ssh-keygen -t rsa` pro vygenerování nového klíče SSH.
- Systém vás požádá o adresář, do kterého se má klíč uložit. Stiskněte klávesu Enter pro výběr výchozího adresáře. Můžete však zvolit jiný adresář dle vašich preferencí. My zůstaneme u výchozího adresáře.

- Nyní je třeba zadat přístupovou frázi, která ochrání váš klíč SSH. Ale je to volitelné.
- Pokud zvolíte přístupovou frázi ke klíči SSH, budete ji muset zadat při každém spuštění počítače.
- Pokud heslo nezvolíte, nebude ho potřeba zadávat.

- Zadejte heslo znovu pro potvrzení.

- Nakonec se vygeneruje nový klíč SSH v následujícím formátu.

Úspěšně jste vygenerovali nový klíč SSH na svém počítači. Vytvoří dva soubory, jak je uvedeno níže (pokud jste změnili cestu, názvy souborů se mohou lišit).

Nyní je čas připojit se k vašemu účtu GitHub. Obsah souboru s příponou `.pub` (v mém případě `id_rsa.pub`) je potřeba zkopírovat do vašeho účtu GitHub pro připojení.
- Přihlaste se ke svému účtu GitHub.
- Otevřete Nastavení.

- Kliknutím na „SSH a GPG klíče“ se dostanete na cílovou stránku.

- Kliknutím na „Nový klíč SSH“ přidáte váš nově vygenerovaný klíč SSH.

- Dostanete se na následující obrazovku.

- Zadejte popis klíče SSH. Klíče SSH se liší pro každý systém. Je tedy dobré klíč popsat, ale není to jediná možnost. Můžete si vybrat podle různých preferencí.
- Po zadání popisu zkopírujte a vložte obsah souboru `.pub` do druhého pole.

- Nakonec stiskněte tlačítko „Přidat SSH“ a potvrďte přístup svým heslem na GitHubu.
- Nově přidaný klíč SSH bude vypadat takto.

Právě jste přidali nový klíč SSH na GitHub. Nyní musíme ověřit připojení SSH, abychom si později mohli užívat ověřování bez hesla. Zadejte do terminálu nebo příkazového řádku následující příkaz:
ssh -T [email protected]

Budete požádáni o potvrzení. Potvrďte to. A to je vše, hotovo.
Nyní naklonujte svůj soukromý repozitář. Tentokrát nebude vyžadováno ověření.
Aktualizujte, uložte a nahrajte. Je to hotovo. Už nebudete muset zadávat ověření. Užijte si to.
Závěr
Uf! Probrali jsme různé způsoby, jak přistupovat k soukromým repozitářům bez neustálého zadávání přihlašovacích údajů. Můžete použít libovolnou metodu. Obecně však platí, že nejlepší je používat metodu SSH pro ověřování.
Opět platí, že záleží na vašich preferencích. Neexistuje žádné striktní pravidlo pro používání pouze metody SSH. Většina podniků však používá pro ověřování metodu SSH, která je bezpečná a šetří spoustu času. A nezapomeňte, že vaše přihlašovací údaje musí být v bezpečí.
Šťastný vývoj 🙂