Kako popraviti da Git uvijek traži korisničke vjerodajnice za HTTP(S) autentifikaciju
Za pristup udaljenom Git spremištu ili rad s njim, možete koristiti SSH ili HTTP(S) protokole; sa prvim, kada su u pitanju privatna spremišta, možete jednostavno konfigurirati SSH ključeve bez šifre koja vam omogućava siguran prijenos podataka bez unošenja korisničkog imena i lozinke.
Međutim, sa HTTP(S), svaka konekcija će od vas tražiti da unesete svoje korisničko ime i lozinku (kada Git treba autentifikaciju za određeni URL kontekst) – korisnici Githuba to dobro znaju.
U ovom članku ćemo vam pokazati kako da popravite Git koji uvijek traži korisničke vjerodajnice za pristup preko HTTP(S). Objasnit ćemo različite načine sprječavanja da Git više puta traži korisničko ime i lozinku prilikom interakcije s udaljenim spremištem preko HTTP(S).
Kako instalirati Git u Linux
Ako nemate instaliran paket Git na vašem sistemu, pokrenite odgovarajuću naredbu za vašu Linux distribuciju da biste ga instalirali (koristite naredbu Sudo gdje je potrebno).
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]
Unošenje Git korisničkog imena i lozinke u udaljeni URL
Kao što smo ranije spomenuli, prilikom kloniranja udaljenog Git spremišta preko HTTP(S), svaka veza treba korisničko ime i lozinku kao što je prikazano.
Da spriječite Git da traži vaše korisničko ime i lozinku, možete unijeti vjerodajnice za prijavu u URL kao što je prikazano.
sudo git clone https://username:[email /username/repo_name.git
OR
sudo git clone https://username:[email /username/repo_name.git local_folder
Glavni nedostatak ove metode je to što će vaše korisničko ime i lozinka biti sačuvani u naredbi u Shell historiji.
kao i u datoteci .git/config u lokalnom folderu, što predstavlja sigurnosni rizik.
cat .git/config
Napomena: Za korisnike Githuba koji su omogućili dvofaktorsku autentifikaciju ili pristupaju organizaciji koja koristi SAML jednostruku prijavu, morate generirajte i koristite lični token za pristup umjesto unosa lozinke za HTTPS Git (kao što je prikazano u primjerima izlaza u ovom vodiču). Da generišete lični pristupni token, u Githubu idite na Postavke => Postavke programera => Lični tokeni.
Čuvanje korisničkog imena i lozinke udaljenog Git spremišta na disk
Druga metoda je korištenje pomoćnika Git akreditiva za spremanje korisničkog imena i lozinke u običnu datoteku na disku kao što je prikazano.
git config credential.helper store
OR
git config --global credential.helper store
Od sada, Git će pisati vjerodajnice u datoteku ~/.git-credentials za svaki URL kontekst, kada se pristupi po prvi put. Da vidite sadržaj ove datoteke, možete koristiti naredbu cat kao što je prikazano.
cat ~/.git-credentials
Za naredne naredbe za isti URL kontekst, Git će pročitati vaše korisničke vjerodajnice iz gornje datoteke.
Baš kao i prethodni metod, ovaj način prosljeđivanja korisničkih akreditiva Git-u je također nesiguran jer je datoteka za pohranu nešifrirana i zaštićena je samo standardnim dozvolama sistema datoteka.
Treća metoda objašnjena u nastavku smatra se sigurnijom.
Keširanje korisničkog imena i lozinke udaljenog Git spremišta u memoriju
Na kraju, ali ne i najmanje važno, također možete koristiti Git pomoćnik za vjerodajnice da privremeno sačuvate svoje vjerodajnice u memoriji neko vrijeme. Da biste to učinili, izdajte sljedeću naredbu.
git config credential.helper cache
OR
git config --global credential.helper cache
Nakon pokretanja gornje naredbe, kada prvi put pokušate pristupiti udaljenom privatnom spremištu, Git će tražiti vaše korisničko ime i lozinku i sačuvati ih u memoriji neko vrijeme.
Zadano vrijeme keširanja je 900 sekundi (ili 15 minuta), nakon čega će Git od vas tražiti da ponovo unesete svoje korisničko ime i lozinku. Možete ga promijeniti na sljedeći način (1800 sekundi=30 minuta ili 3600 sekundi=1 sat).
git config --global credential.helper 'cache --timeout=18000'
OR
git config --global credential.helper 'cache --timeout=36000'
Za više informacija o Git-u i pomoćnicima za vjerodajnice, pogledajte njihove man stranice.
man git
man git-credential-cache
man git-credential-store
Je li ovaj vodič bio od pomoći? Obavijestite nas putem obrasca za povratne informacije u nastavku. Također možete podijeliti sva pitanja ili razmišljanja o ovoj temi.