Jak opravit Git, který vždy požaduje přihlašovací údaje pro HTTP(S) autentizaci
Chcete-li získat přístup ke vzdálenému úložišti Git nebo s ním pracovat, můžete použít protokoly SSH nebo HTTP(S); u prvního, pokud jde o soukromá úložiště, můžete jednoduše nakonfigurovat klíče SSH bez přístupové fráze, což vám umožní bezpečně přenášet data bez zadávání uživatelského jména a hesla.
S HTTP(S) vás však každé připojení vyzve k zadání uživatelského jména a hesla (když Git potřebuje ověření pro konkrétní kontext URL) – uživatelé Github to dobře vědí.
V tomto článku vám ukážeme, jak opravit, že Git vždy požaduje uživatelské přihlašovací údaje pro přístup přes HTTP(S). Vysvětlíme různé způsoby, jak zabránit Gitu v opakovaném dotazování na uživatelské jméno a heslo při interakci se vzdáleným úložištěm přes HTTP(S).
Jak nainstalovat Git v Linuxu
Pokud v systému nemáte nainstalovaný balíček Git, spusťte příslušný příkaz pro vaši distribuci Linuxu a nainstalujte jej (v případě potřeby použijte příkaz Sudo).
sudo apt install git [On Debian/Ubuntu]
yum install git [On CentOS/RHEL/Fedora]
sudo zypper install git [On OpenSuse]
sudo pacman -S git [On Arch Linux]
Zadání uživatelského jména a hesla Git do vzdálené adresy URL
Jak jsme již zmínili dříve, při klonování vzdáleného úložiště Git přes HTTP(S) potřebuje každé připojení uživatelské jméno a heslo jak je znázorněno.
Chcete-li zabránit, aby Git požadoval vaše uživatelské jméno a heslo, můžete do adresy URL zadat přihlašovací údaje, jak je uvedeno na obrázku.
sudo git clone https://username:[email /username/repo_name.git
OR
sudo git clone https://username:[email /username/repo_name.git local_folder
Hlavní nevýhodou této metody je, že vaše uživatelské jméno a heslo budou uloženy v příkazu v souboru historie prostředí.
a také v souboru .git/config v místní složce, což představuje bezpečnostní riziko.
cat .git/config
Poznámka: Pro uživatele Github, kteří povolili dvoufaktorové ověřování nebo přistupují k organizaci, která používá SAML jednotné přihlášení, musíte vygenerujte a použijte osobní přístupový token namísto zadávání hesla pro HTTPS Git (jak je uvedeno ve vzorových výstupech v této příručce). Chcete-li vygenerovat osobní přístupový token, přejděte na Github do Nastavení => Nastavení vývojáře => Osobní přístupové tokeny.
Uložení uživatelského jména a hesla vzdáleného úložiště Git na disk
Druhou metodou je použití pomocníka s přihlašovacími údaji Git k uložení uživatelského jména a hesla do prostého souboru na disk, jak je znázorněno.
git config credential.helper store
OR
git config --global credential.helper store
Od této chvíle bude Git při prvním přístupu zapisovat přihlašovací údaje do souboru ~/.git-credentials pro každý kontext adresy URL. Chcete-li zobrazit obsah tohoto souboru, můžete použít příkaz cat, jak je znázorněno na obrázku.
cat ~/.git-credentials
U následných příkazů pro stejný kontext adresy URL přečte Git vaše uživatelská pověření z výše uvedeného souboru.
Stejně jako předchozí metoda je tento způsob předávání uživatelských pověření do Gitu také nezabezpečený, protože soubor úložiště je nešifrovaný a je chráněn pouze standardními oprávněními souborového systému.
Třetí metoda vysvětlená níže je považována za bezpečnější.
Ukládání uživatelského jména a hesla vzdáleného úložiště Git do mezipaměti
V neposlední řadě můžete také použít pomocníka pro přihlašovací údaje Git k dočasnému uložení přihlašovacích údajů na nějakou dobu do paměti. Chcete-li to provést, zadejte následující příkaz.
git config credential.helper cache
OR
git config --global credential.helper cache
Po spuštění výše uvedeného příkazu se při prvním pokusu o přístup ke vzdálenému soukromému úložišti Git zeptá na vaše uživatelské jméno a heslo a uloží je na nějakou dobu do paměti.
Výchozí doba ukládání do mezipaměti je 900 sekund (nebo 15 minut), po které vás Git znovu vyzve k zadání uživatelského jména a hesla. Můžete jej změnit následovně (1800 sekund=30 minut nebo 3600 sekund=1 hodina).
git config --global credential.helper 'cache --timeout=18000'
OR
git config --global credential.helper 'cache --timeout=36000'
Další informace o Gitu a pomocníkech s přihlašovacími údaji najdete na jejich manuálových stránkách.
man git
man git-credential-cache
man git-credential-store
Byl tento průvodce užitečný? Dejte nám vědět prostřednictvím formuláře pro zpětnou vazbu níže. Můžete také sdílet jakékoli dotazy nebo myšlenky na toto téma.