Kako popraviti Git, ki vedno zahteva poverilnice za overjanje HTTP (S)


Za dostop ali varno prenašanje podatkov brez vnosa uporabniškega imena in gesla.

Pri HTTP (S) pa vas bo vsaka povezava pozvala, da vnesete svoje uporabniško ime in geslo (ko Git potrebuje preverjanje pristnosti za določen kontekst URL-ja) - uporabniki Githuba to dobro vedo.

V tem članku vam bomo pokazali, kako popraviti Git, ki vedno zahteva uporabniške poverilnice za dostop prek HTTP (S). Pojasnili bomo različne načine preprečevanja, da bi Git večkrat zahteval uporabniško ime in geslo pri interakciji z oddaljenim skladiščem prek HTTP (S).

Kako namestiti Git v Linux

Če v vašem sistemu ni nameščen paket Git, za njegovo namestitev zaženite ustrezen ukaz za distribucijo Linuxa (po potrebi uporabite ukaz 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]

Vnos uporabniškega imena in gesla za Git v oddaljeni URL

Kot smo že omenili, pri kloniranju oddaljenega repozitorija Git prek HTTP (S) vsaka povezava potrebuje uporabniško ime in geslo, kot je prikazano.

Če želite preprečiti, da bi Git zahteval vaše uporabniško ime in geslo, lahko v URL vnesete poverilnice za prijavo, kot 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

Glavna pomanjkljivost te metode je, da bosta vaše uporabniško ime in geslo shranjena v ukazu v zgodovini datoteke Shell.

kot tudi v datoteki .git/config v lokalni mapi, ki predstavlja varnostno tveganje.

$ cat .git/config

Opomba: Za uporabnike Github, ki so omogočili dvostopenjsko preverjanje pristnosti ali dostopajo do organizacije, ki uporablja enotno prijavo SAML, morate namesto vnosa gesla za HTTPS Git ustvariti in uporabiti osebni žeton za dostop (kot je prikazano v vzorčnih izhodih v tem priročniku). Če želite ustvariti osebni žeton za dostop, v Githubu pojdite na Nastavitve => Nastavitve za razvijalce => Žetoni za osebni dostop.

Shranjevanje uporabniškega imena in gesla za oddaljeno shrambo Git na disku

Druga metoda je uporaba pomočnika Git za poverilnice za shranjevanje uporabniškega imena in gesla v navadno datoteko na disku, kot je prikazano.

$ git config credential.helper store				
OR
$ git config --global credential.helper store		

Odslej bo Git zapisoval poverilnice v datoteko ~/.git-credentials za vsak kontekst URL-ja, ko bo prvič dostopan do njih. Za ogled vsebine te datoteke lahko uporabite ukaz cat, kot je prikazano.

$ cat  ~/.git-credentials

Za nadaljnje ukaze za isti kontekst URL-ja bo Git prebral vaše uporabniške poverilnice iz zgornje datoteke.

Tako kot prejšnja metoda tudi ta način posredovanja uporabniških poverilnic Gitu ni varen, ker je shranjevalna datoteka nešifrirana in je zaščitena le s standardnimi dovoljenji datotečnega sistema.

Tretja metoda, razložena spodaj, velja za bolj varno.

Predpomnjenje uporabniškega imena in gesla oddaljenega skladišča Git v pomnilniku

Nenazadnje lahko s pomočjo Git poverilnic za nekaj časa začasno shranite svoje poverilnice v pomnilnik. Če želite to narediti, izdajte naslednji ukaz.

$ git config credential.helper cache
OR
$ git config --global credential.helper cache

Po zagonu zgornjega ukaza bo Git ob prvem poskusu dostopa do oddaljenega zasebnega repozitorija zahteval vaše uporabniško ime in geslo ter ga nekaj časa shranil v pomnilnik.

Privzeti čas predpomnjenja je 900 sekund (ali 15 minut), po katerem vas bo Git pozval, da znova vnesete uporabniško ime in geslo. Spremenite ga lahko na naslednji način (1800 sekund = 30 minut ali 3600 sekund = 1 ura).

$ git config --global credential.helper 'cache --timeout=18000'
OR
$ git config --global credential.helper 'cache --timeout=36000'

Za več informacij o pomočnikih Git in poverilnic glejte njihove priročne strani.

$ man git
$ man git-credential-cache
$ man git-credential-store

Je bil ta vodnik koristen? Sporočite nam preko spodnjega obrazca za povratne informacije. Lahko tudi delite kakršna koli vprašanja ali razmišljanja o tej temi.