Daugiau
Ar yra būdas talpinti į talpyklą "GitHub" kredencialus, kad būtų galima stumti pakeitimus?
Neseniai pradėjau sinchronizuoti savo saugyklas su "GitHub" https:// (dėl ugniasienės problemų), ir kiekvieną kartą prašoma slaptažodžio.
Ar yra koks nors būdas talpinti slaptažodžius į talpyklą, užuot kiekvieną kartą autentifikavus git push
?
1799
3
Su "Git" 1.7.9 ir vėlesne versija
Nuo "Git 1.7.9" versijos (išleistos 2012 m. sausio mėn. pabaigoje) "Git" įdiegtas tvarkingas mechanizmas, vadinamas įgaliojimų pagalbininkais, leidžiantis išvengti nuolatinio slaptažodžio įvedimo HTTP / HTTPS. (Ačiū dazonic už tai, kad žemiau esančiuose komentaruose atkreipė dėmesį į šią naują funkciją.)
Naudodami "Git 1.7.9" ar naujesnę versiją, galite tiesiog naudoti vieną iš šių įgaliojimų pagalbininkų:
... kuris nurodo "Git" laikyti slaptažodį atmintyje (pagal nutylėjimą) 15 minučių. Galite nustatyti ilgesnį laiko tarpą naudodami:
(Šis pavyzdys buvo pasiūlytas GitHub pagalbos puslapyje "Linux").) Taip pat, jei norite, galite nuolat saugoti savo prisijungimo duomenis, žr. kitus toliau pateiktus atsakymus.
GitHub pagalba taip pat siūlo, kad jei naudojate Mac OS X ir Git įdiegimui naudojote Homebrew, galite naudoti vietinę Mac OS X raktų saugyklą su:
Windows sistemai yra pagalbinė programa Git Credential Manager for Windows arba wincred in msysgit.
Su Git for Windows 2.7.3+ (2016 m. kovo mėn.):
Linux sistemoje galite naudoti
gnome-keyring
(arba kitą raktų rinkinio realizaciją, pavyzdžiui, KWallet).Su "Git" versijomis iki 1.7.9
Naudojant "Git" versijas, ankstesnes nei 1.7.9, ši saugesnė parinktis nepasiekiama, todėl turėsite pakeisti URL adresą, kurį naudoja jūsų
origin
remote, kad slaptažodis būtų įtrauktas tokiu būdu:... kitaip tariant, po vartotojo vardo ir prieš
@
įrašykite:password
.Galite nustatyti naują nuotolinio
pradžios
URL adresą, naudodami:Įsitikinkite, kad naudojate
https
, ir turėtumėte žinoti, kad tokiu atveju jūsų "GitHub" slaptažodis bus saugomas atviru tekstu jūsų.git
kataloge, o tai akivaizdžiai nepageidautina.Naudodami bet kurią "Git" versiją (nuo versijos 0.99)
Alternatyvus būdas - įrašyti savo vartotojo vardą ir slaptažodį į
~/.netrc
failą, nors, kaip ir laikant slaptažodį nutolusiame URL, tai reiškia, kad jūsų slaptažodis bus saugomas diske atviru tekstu, todėl yra mažiau saugus ir nerekomenduojamas. Tačiau jei norite taikyti šį metodą, į~/.netrc
failą įrašykite šią eilutę:... vietoj
įrašykite serverio pagrindinį vardą, o
ir `` - savo vartotojo vardą ir slaptažodį. Taip pat nepamirškite šiam failui nustatyti ribojančias failų sistemos teises:Atkreipkite dėmesį, kad "Windows" sistemoje šis failas turėtų vadintis
_netrc
ir jums gali tekti nustatyti aplinkos kintamąjį %HOME% - daugiau informacijos žr:Taip pat galite nustatyti, kad "Git" nuolat saugotų jūsų įgaliojimus, naudodami šiuos veiksmus:
Pastaba: Nors tai patogu, "Git" išsaugos jūsų įgaliojimus atviru tekstu vietiniame faile (.git-credentials), esančiame jūsų projekto kataloge (žr. toliau "home" katalogą). Jei jums tai nepatinka, ištrinkite šį failą ir naudokite talpyklos parinktį.
Jei norite, kad "Git" vėl neprašytų jūsų duomenų kiekvieną kartą, kai reikia prisijungti prie nutolusios saugyklos, galite paleisti šią komandą:
Norėdami slaptažodžius saugoti
.git-credentials
kataloge%HOME%
, o ne projekto kataloge: naudokite--global
vėliavėlęJei nenorite saugoti slaptažodžio atviru tekstu, kaip sakė Markas, galite naudoti kitokį "GitHub" URL adresą, kad gautumėte duomenis, nei juos siunčiate. Konfigūracijos failo skiltyje
[remote "origin"]
:Siunčiant vis tiek bus prašoma slaptažodžio, bet ne imant, bent jau atvirojo kodo projektams.