Kako popraviti Git koji uvijek traži korisničke vjerodajnice za HTTP(S) autentifikaciju
Za pristup ili rad s udaljenim Git spremištem, možete koristiti ili SSH ili HTTP(S) protokole; s prvim, kada je riječ o privatnim spremištima, možete jednostavno konfigurirati SSH ključeve bez zaporke što vam omogućuje siguran prijenos podataka bez upisivanja korisničkog imena i lozinke.
Međutim, uz HTTP(S), svaka će veza od vas tražiti da unesete svoje korisničko ime i lozinku (kada Git treba provjeru autentičnosti za određeni kontekst URL-a) – korisnici Githuba to dobro znaju.
U ovom članku pokazat ćemo vam kako popraviti Git koji uvijek traži korisničke vjerodajnice za pristup putem HTTP(S). Objasnit ćemo različite načine sprječavanja Gita da opetovano traži korisničko ime i lozinku prilikom interakcije s udaljenim spremištem preko HTTP(S).
Kako instalirati Git u Linux
Ako na vašem sustavu nemate instaliran paket Git, pokrenite odgovarajuću naredbu za svoju distribuciju Linuxa da biste ga instalirali (upotrijebite naredbu Sudo ako 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]
Unos Git korisničkog imena i lozinke u udaljeni URL
Kao što smo ranije spomenuli, prilikom kloniranja udaljenog Git repozitorija preko HTTP(S), svaka veza treba korisničko ime i lozinku kao što je prikazano.
Kako biste spriječili da Git 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 će vaše korisničko ime i lozinka biti spremljeni u naredbi u datoteci povijesti Shell-a.
kao i u datoteci .git/config u lokalnoj mapi, što predstavlja sigurnosni rizik.
cat .git/config
Napomena: Za korisnike Githuba koji su omogućili dvofaktorsku autentifikaciju ili pristupaju organizaciji koja koristi SAML jedinstvenu prijavu, morate generirajte i koristite osobni pristupni token umjesto unosa svoje lozinke za HTTPS Git (kao što je prikazano u oglednim rezultatima u ovom vodiču). Da biste generirali osobni pristupni token, u Githubu idite na Postavke => Postavke za razvojne programere => Osobni pristupni tokeni.
Spremanje korisničkog imena i lozinke udaljenog Git repozitorija na disk
Druga metoda je korištenje pomoćnika Git vjerodajnica za spremanje vašeg 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 će Git pisati vjerodajnice u datoteku ~/.git-credentials za svaki URL kontekst, kada mu se pristupi prvi put. Za pregled sadržaja ove datoteke, možete koristiti naredbu cat kao što je prikazano.
cat ~/.git-credentials
Za sljedeće naredbe za isti URL kontekst, Git će pročitati vaše korisničke vjerodajnice iz gornje datoteke.
Baš kao i prethodna metoda, ovaj način prosljeđivanja korisničkih vjerodajnica Gitu također nije siguran budući da je datoteka za pohranu nekriptirana i zaštićena je samo standardnim dozvolama datotečnog sustava.
Treća metoda objašnjena u nastavku smatra se sigurnijom.
Predmemoriranje korisničkog imena i lozinke udaljenog Git repozitorija u memoriju
Na kraju, ali ne manje važno, također možete koristiti Git pomoćnik za vjerodajnice da privremeno spremite svoje vjerodajnice u memoriju na 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 repozitoriju, Git će tražiti vaše korisničko ime i lozinku i spremiti ih u memoriju neko vrijeme.
Zadano vrijeme predmemoriranja je 900 sekundi (ili 15 minuta), nakon čega će Git zatražiti da ponovno 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? Javite nam putem obrasca za povratne informacije u nastavku. Također možete podijeliti sva pitanja ili misli o ovoj temi.