Pentru a accesa sau lucrați cu un depozit Git la distanță, puteți utiliza fie SSH sau HTTP (S) protocoale; cu primul, când vine vorba de depozite private, poți pur și simplu configurați cheile SSH fără o expresie de acces ceea ce îți permite transferați datele în siguranță fără să introduceți numele de utilizator și parola.
Cu toate acestea, cu HTTP (S), fiecare conexiune vă va solicita să introduceți numele de utilizator și parola (atunci când Git are nevoie de autentificare pentru un anumit context URL) - Utilizatorii Github știu acest lucru bine.
În acest articol, vă vom arăta cum să remediați Git solicitând întotdeauna acreditări de utilizator pentru acces HTTP (S). Vom explica diferite moduri de a împiedica Git să solicite în mod repetat numele de utilizator și parola atunci când interacționați cu un depozit la distanță HTTP (S).
Dacă nu aveți Git pachetul instalat pe sistemul dvs., executați comanda corespunzătoare pentru distribuția Linux pentru al instala (utilizați fișierul Sudo comandă acolo unde este necesar).
$ sudo apt install git [Pe Debian / Ubuntu] # yum install git [Pe CentOS / RHEL / Fedora] $ sudo zypper install git [Pe OpenSuse] $ sudo pacman -S git [On Arch Linux]
După cum am menționat mai devreme, atunci când clonați o telecomandă Git depozit peste HTTP (S), fiecare conexiune are nevoie de un nume de utilizator și parola așa cum se arată.
A preveni Git de la a cere pentru dumneavoastră nume de utilizator și parola, puteți introduce acreditările de conectare în adresa URL așa cum se arată.
$ sudo git clona https://username:[e-mail protejat]/username/repo_name.git. SAU. $ sudo git clona https://username:[e-mail protejat]/username/repo_name.git local_folder.
Principalul dezavantaj al acestei metode este că nume de utilizator și parola va fi salvat în comanda din Fișier istoric shell.
precum și în .git / config din folderul local, care prezintă un risc de securitate.
$ cat .git / config.
Notă: Pentru utilizatorii Github care au activat autentificarea cu doi factori sau care accesează o organizație care folosește SAML conectare unică, trebuie să generați și să utilizați un jeton de acces personal în loc să introduceți parola pentru HTTPS Git (așa cum se arată în rezultatele eșantionului din acest ghid). Pentru a genera un jeton de acces personal, în Github, mergi la Setări=>Setări pentru dezvoltatori=>Personal jetoane de acces.
Cea de-a doua metodă este utilizarea helperului de acreditare Git pentru a vă salva numele de utilizator și parola într-un fișier simplu pe disc așa cum se arată.
$ git config credential.helper store SAU. $ git config - credential global.helper store
De-acum inainte, Git va scrie acreditări către ~ / .git-credentials fișier pentru fiecare context URL, când este accesat pentru prima dată. Pentru a vizualiza conținutul acestui fișier, puteți utiliza fișierul comandă pisică așa cum se arată.
$ cat ~ / .git-credentials.
Pentru comenzile ulterioare pentru același context URL, Git vă va citi acreditările de utilizator din fișierul de mai sus.
La fel ca metoda anterioară, acest mod de a transmite acreditările utilizatorului Git este, de asemenea, nesigur, deoarece fișierul de stocare este necriptat și este protejat numai de permisiunile standard ale sistemului de fișiere.
A treia metodă explicată mai jos este considerată mai sigură.
Nu în ultimul rând, puteți utiliza și fișierul Git asistent pentru acreditări pentru a vă salva temporar acreditările în memorie pentru o perioadă de timp. Pentru aceasta, lansați următoarea comandă.
$ git config credential.helper cache. SAU. $ git config --credential global.helper cache.
După executarea comenzii de mai sus, când încercați să accesați un depozit privat la distanță pentru prima dată, Git vă va cere numele de utilizator și parola și le va salva în memorie pentru o perioadă de timp.
Timpul implicit de stocare în cache este 900 secunde (sau 15 minute), după care Git vă va solicita să introduceți din nou numele de utilizator și parola. Puteți să-l modificați după cum urmează (1800 secunde = 30 minute sau 3600 secunde = 1 oră).
$ git config --global credential.helper 'cache --timeout = 18000' SAU. $ git config --global credential.helper 'cache --timeout = 36000'
Pentru mai multe informații despre Git și ajutoare de acreditare, consultați paginile lor de manual.
$ man git. $ man git-credential-cache. $ man git-credential-store.
A fost de ajutor acest ghid? Spuneți-ne prin formularul de feedback de mai jos. Puteți, de asemenea, să împărtășiți orice întrebări sau gânduri despre acest subiect.