„Git“ spaudimui reikalingas vartotojo vardas ir slaptažodis

„Git“ saugyklą klonavau iš savo „Github“ paskyros į savo kompiuterį.

Noriu dirbti su kompiuteriu ir nešiojamuoju kompiuteriu, bet su viena „Github“ paskyra.

Kai bandau stumti arba ištraukti iš „Github“ naudodamas savo kompiuterį, jam reikia vartotojo vardo ir slaptažodžio, bet ne naudojant nešiojamąjį kompiuterį!

Nenoriu įvesti naudotojo vardo ir slaptažodžio kiekvieną kartą, kai bendraujau su šaltiniu. Kas čia trūksta?

1145
03 июля '11 в 23:25 2011-07-03 23:25 TooCooL yra nustatytas liepos 03 d. 11 val. 23:25 2011-07-03 23:25
@ 20 atsakymų

Dažna klaida yra klonuoti naudojant numatytąjį (HTTPS) vietoj SSH. Galite pataisyti, eikite į savo saugyklą, spustelėdami „Klonas arba atsisiuntimas“, tada spustelėdami „Naudoti SSH“ virš URL lauko ir atnaujinant nuotolinio šaltinio URL, pavyzdžiui:

 git remote set-url origin git@github.com:username/repo.git 

Tai dokumentuojama GitHub: nuotolinių URL perjungimas iš HTTPS į SSH .

1653 m
04 июля '11 в 0:25 2011-07-04 00:25 atsakymas duotas Tekkub liepos 4 d., 11 d. 0:25 2011-07-04 00:25

Nuolatinis autentifikavimas naudojant „Git“ saugyklas,

Paleiskite šią komandą, kad įgalintumėte patikimumo talpyklą :

 $ git config credential.helper store $ git push https://github.com/repo.git Username for 'https://github.com': <USERNAME> Password for 'https://USERNAME@github.com': <PASSWORD> 

border=0

Naudojimas taip pat turėtų rodyti, kad pasibaigė talpykla

 git config --global credential.helper 'cache --timeout 7200' 

Įgalinus patikimumo talpyklą, jis bus saugomas 7200 sekundžių (2 valandų) .

209
17 февр. Atsakymą pateikė Jay Patel , vasario 17 d. 2015-02-17 16:30 '15 - 16.30 val. 2015-02-17 16:30

Susidūriau su ta pačia problema ir paprasčiausias sprendimas buvo rasti SSH URL vietoj HTTPS:

 ssh://git@github.com/username/repo.git 

Ir ne tai:

 https://github.com/username/repo.git 

Dabar galite patikrinti tik SSH Key o ne username ir password .

116
14 июня '12 в 10:19 2012-06-14 10:19 atsakymą davė Anton Salikhmetovas birželio 12 d. 12 val. 10:19 2012-06-14 10:19

Be perjungimo į SSH, taip pat galite naudoti HTTPS, jei nenorite įvesti savo slaptažodžio aiškiu tekstu. Įdėkite jį į savo ~/.netrc ir jis neprašys jūsų vartotojo vardo / slaptažodžio (bent jau „Linux“ ir „Mac“):

 machine github.com login <user> password <password> 

Papildymas (žr. Antrąjį „VonC“ komentarą): „Windows“ failo pavadinimas yra %HOME%\_netrc .

Taip pat perskaitykite pirmą VonC komentarą, jei norite šifruoti.

Kitas papildymas (žr. Vartotojo komentarą 137717 ), kurį galite naudoti, jei turite 1.7.10 ar naujesnę versiją .

Įkelkite savo „github“ slaptažodį, kad galėtumėte naudotis naudojimosi įgaliojimų asistentu :

Jei klonuojate „GitHub“ saugyklas, naudodami HTTPS, galite naudoti kredencialų pagalbininką, kad git būtų papasakotas prisiminti savo „GitHub“ naudotojo vardą ir slaptažodį kiekvieną kartą, kai jis kalba su „GitHub“.

Jis taip pat veikia Linux, Mac ir Windows.

110
19 янв. atsakymą pateikė rintcius 19 2013-01-19 22:08 '13, 10:08 val. 2013-01-19 22:08

Nesusijusiems, kurie jaučiasi nepatogūs dėl ankstesnių atsakymų, galite:

git remote -v

kas atsakys į kažką panašaus

 origin https://yourname@github.com/yourname/yourrepo.git (fetch) origin https://yourname@github.com/yourname/yourrepo.git (push) 

tada galite paleisti komandą, kurią siūlo daugelis kitų, bet dabar jūs žinote savo vardą ir saugyklą iš viršaus, kad galėtumėte tiesiog nukirpti ir įklijuoti savo vardą / savo yourname/yourrepo.git

 git remote set-url origin git@github.com:yourname/yourrepo.git 
73
13 февр. Atsakymą davė Davide , vasario 13 d. 2014-02-13 20:22 '14, 20:22, 2014-02-13 20:22

Jei naudojate ssh ir jūsų privatus raktas yra užšifruotas slaptafrazė, jums vis tiek bus paprašyta įvesti privataus rakto slaptažodį / slaptažodį, kai vykdoma tinklo operacija su „Git“, pvz., push , pull ir pull .

Norėdami išsaugoti slaptažodį ir slaptažodį, naudokite ssh - gent.

Jei nenorite įvesti slaptafrazės kiekvieną kartą, galite naudoti ssh-agent kad išsaugotumėte slaptažodžio slaptažodžius vieną kartą per terminalo sesiją, kaip paaiškinau atsakyme į Nepavyko atidaryti ryšio su jūsų autentifikavimo agentu :

 $ ssh-agent -k 

Kaip paaiškinta ssh-agent vartotojo vadove:

 -k 

Nužudyk dabartinį agentą (nustatytą pagal SSH_AGENT_PID aplinkos kintamąjį).

Papildomas laikas

Be to, jis gali pasirinkti pasirinktinį laiko išjungimo parametrą, pavyzdžiui:

ssh-agent naudotojo vadovą : 

 -t life 

Nustatykite numatytąją maksimalaus identifikatorių, pridedamų prie agento, vertę. Gyvenimo laiką galima nurodyti sekundėmis arba laiko formatu, nurodytu sshd_config (5) . Identifikatoriui nustatytas gyvenimas, naudojant ssh -a dd (1), viršija šią vertę. Be šios parinkties numatytasis maksimalus veikimo laikas yra amžinai.

Žr. Šį puslapį daugiau laiko formatų .

Saugumo įspėjimas „Cygwin“ vartotojams

„Cygwin“ naudotojai turėtų žinoti apie galimą saugumo riziką, kai naudosite ssh-gentį „Cygwin“ :

ar žmonės turėtų žinoti apie galimus pavojus, kad ssh-yra pažeidžiami cygwin [1], nors vietiniame netstat ir nuotolinio prievado nuskaityme neatrodo, kad / tmp / ssh-foo nurodytas prievadas yra prieinamas visiems ...?

 [1]: http://www.cygwin.com/ml/cygwin/2001-01/msg00063.html 

Ir šioje nuorodoje :

tačiau atkreipkite dėmesį, kad „cygwin unix“ domenų lizdai yra visiškai nepriekaištingi, todėl aš tvirtai OBLIGE naudoti ssh-nobly pagal cygwin.

kai paleidžiate ssh-a gentį po cygwin, jis sukuria AF_UNIX lizdą /tmp/ssh-$USERNAME/ . pagal cygwin, AF_UNIX lizdai imituojami per AF_INET lizdus. Tai galite lengvai matyti, jei per notepad peržiūrite /tmp/ssh-$USERNAME/agent-socket-* . pamatysite kažką panašaus

 !<socket >2080 

tada paleiskite netstat -a ir būkite nustebinti! jūs turite tam tikrą programą, kuri klausosi 2080 uosto. tai yra ssh -a. kai ssh gauna RSA skambutį iš serverio, tai reiškia atitinkamą /tmp/ssh-$USERNAME/agent-socket-* (mūsų atveju, pagal cygwin, tai reiškia, kad ji atvers ryšį su localhost:2080 ) ir prašo ssh [CN01] procesų RSA prašymas, naudojant jam priklausantį asmeninį raktą, ir tada tiesiog atsiunčia iš ssh-a genties gautą atsakymą serveriui.

pagal UNIX, šis scenarijus veikia be problemų, nes UNIX branduolys tikrina leidimus, kai programa bando pasiekti AF_UNIX lizdą. Tačiau AF_INET lizdams ryšiai yra anonimiški (skaityti „nesaugūs“). Įsivaizduokite, kad turite Cygwin SSH -a, dirbdami be pertraukos. kenkėjiškas įsilaužėlis gali prijungti jūsų >

51
21 авг. atsakymą pateikė vartotojo456814 rugpjūčio 21 d 2013-08-21 05:54 '13, 5:54, 2013-08-21 05:54

Šaltinis: „ Git“ sąranka

Toliau pateikta komanda išsaugos jūsų slaptažodį jūsų atmintyje.
(Už 1.7.10 arba naujesnę versiją .)

44
01 сент. atsakymą pateikė Sagar Rakshe 01 sep . 2013-09-01 05:55 '13, 5:55, 2013-09-01 05:55

Naudodami „ https“ , naudodami „git pull“ ir „push“, paprasčiausiai remote.origin.url “ savo projektui, kad kiekvieną kartą paspaudę remote.origin.url naudotojo vardo (ar / ir slaptažodžio).

Kaip sukonfigūruoti „ remote.origin.url :

 URL formatas: https: // {vartotojo vardas: slaptažodis @} github.com/ {savininkas} / {repo} Parametrai URL: * vartotojo vardas neprivaloma, reikia naudoti naudotojo vardą, kai reikia autentifikavimo, jei nurodyta, nereikia vėl įvesti naudotojo vardo, kai reikia autentifikavimo, tai ne jūsų el. laiškas, tai negalima teisingai apdoroti, * slaptažodis pasirinktinis slaptažodis jei nurodyta, nereikia vėl įvesti slaptažodžio, kai reikia autentifikavimo, patarimas: tai yra param, *  pvz git config remote.origin.url https: //eric@github.com/eric/myproject

@Update - naudojant ssh

Manau, kad naudojant ssh yra geresnis sprendimas nei https , nors konfigūravimo žingsnis yra šiek tiek sudėtingesnis.

Stambūs žingsniai:

  • Sukurkite ssh raktus naudodami komandą, pvz., Linux ssh-keygen , o Windows msysgit teikia panašias komandas.
  • Asmeninį raktą išsaugokite vietiniame kompiuteryje, pvz., ~/.ssh . Ir pridėkite jį prie ssh agento per ssh-add komandą.
  • Įkelkite viešąjį raktą į git serverį.
  • Pakeiskite „ remote.origin.url git saugyklą į ssh stilių, pvz., git@gitlab.com:myaccount/myrepo.git
  • Tada, traukdami arba paspausdami, nereikia įvesti naudotojo vardo ar slaptažodžio.

Patarimai:

  • Jei jūsų ssh-raktinis žodis turi frazę, turite jį įvesti, kai pirmą kartą naudosite raktą po kiekvieno kompiuterio restartavimo.

@Update - persijungia tarp https ir ssh protokolų.

Pakanka keisti remote.origin.url arba galite tiesiogiai redaguoti repo_home/.git/config kad pakeistumėte vertę (pvz., Naudodami vi Linux sistemoje).

Paprastai pridedu eilutę kiekvienam protokolui ir komentuoju vieną iš jų naudojant # .

Pavyzdžiui

 [nuotolinė "kilmė"] url = git@gitlab.com: myaccount / myrepo.git # url = https: //myaccount@gitlab.com/myaccount/myrepo.git fetch = + refs / heads / *: refs / nuotolinės / kilmės / *
28
25 дек. Eric Wang atsakymas: gruodžio 25 d 2013-12-25 18:42 '13, 6:42 pm 2013-12-25 18:42

GitHub slaptažodį galite talpinti „Git“:

Tiesiog vadovaukitės oficialios github dokumentacijos instrukcijomis .

Vadovaudamiesi pirmiau pateiktoje nuorodoje pateiktomis instrukcijomis, galite spustelėti / ištraukti / iš savo repo, bet ne kartą įvesdami naudotojo vardą / slaptažodį.

15
19 дек. gruodžio 19 d. KM Rakibul Islamo atsakymas . 2014-12-19 08:29 '14 at 8:29 2014-12-19 08:29

Čia yra dar viena parinktis:

Vietoj rašymo

 git push origin HEAD 

Galite rašyti:

 git push https://user:pass@yourrepo.com/path HEAD 

Akivaizdu, kad dėl daugelio lukštų tai padės išsaugoti slaptažodžio talpyklą istorijoje, todėl turėkite omenyje tai.

5
24 апр. Atsakymą pateikė Lacho Tomov balandžio 24 d 2018-04-24 20:05 '18, 08:05 val. 2018-04-24 20:05

Man, redaguoti .git/config dirbo ir naudojant

 [remote "origin"] url = https://<login>:<password>@gitlab.com(...).git 

Savaime suprantama, kad tai yra nesaugus būdas išsaugoti slaptažodį, tačiau yra aplinkos / atvejų, kai tai gali būti ne problema.

5
31 июля '16 в 21:25 2016-07-31 21:25 atsakymą pateikė WoJ liepos 16 d. 16:25 2016-07-31 21:25

Iš esmės turite dvi galimybes.

Jei abiejuose įrenginiuose naudojate tą patį naudotoją, turite kopijuoti .pub raktą į kompiuterį, todėl „github“ žino, kad esate tas pats vartotojas.

Jei sukūrėte naują savo .pub failą ir norite apdoroti kompiuterius kaip skirtingus vartotojus, turite užregistruoti naują „.pub“ failą „github“ svetainėje.

Jei jis vis dar neveikia, gali būti, kad ssh nėra tinkamai sukonfigūruotas ir ssh negali rasti raktų vietos. Pabandykite

 ssh -vv username@github.com 

Daugiau informacijos, kodėl SSH neveikia.

4
04 июля '11 в 0:32 2011-07-04 00:32 atsakymas pateikiamas ralphtheninja liepos 4 d. 11 d. 0:32 2011-07-04 00:32

„Https“ naujinimas:

„Github“ pradėjo naują „Windows“ programą, kurioje saugomi jūsų kredencialai, kai naudojate HTTPS:

Naudoti:

Atsisiųskite programą iš čia.

Paleidus programą, jis redaguos jūsų .gitconfig failą. Patikrinkite, ar jis redagavo teisingą .gitconfig , jei turite keletą. Jei jis nepasikeitė teisingu, į savo .gitconfig

 [credential] helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe' 

Atkreipkite dėmesį į linijos pertrauką po [credential] . Tai būtina.

Atidarykite komandinės eilutės klientą ir vieną kartą pabandykite git push origin master . Jei jis paprašys jūsų slaptažodžio, įveskite jį ir baigsite. Slaptažodis išsaugotas!

4
05 апр. Atsakyti į Varun Achar balandžio 05 2013-04-05 09:02 '13 ne 9:02 2013-04-05 09:02

Turėjau tą pačią problemą.

taip pakeiskite .git / config failą iš mano projekto

 url = https://github.com/<your-user-here>/<your-repo-here> 

į

 url = git@github.com:<your-user-here>/<your-repo-here> 

ir pridėkite ssh viešąjį raktą į konfigūracijos git profilį.

ssh viešojo rakto

 cat ~/.ssh/id_rsa.pub 
2
09 июня '15 в 8:42 2015-06-09 08:42 atsakymas suteiktas birželio 9 d., 15 val. 8:42 2015-06-09 08:42

„Windows“ vartotojams „git“: paleisdami „ git config --global credential.helper store , jei ji vis dar prašo slaptažodžio, geriau patikrinti, kur yra parašyta konfigūracija. naudojant šią komandą

git config --list --show-origin

Mano atveju, rankiniu būdu redaguokite konfigūracijos failą „C“: „Failų failai“ „Gitww64“ ir „gitconfig“, pridedant šį tekstą, viskas veikia.

[credential] helper = store

2
30 авг. atsakymas pateikiamas Liang 30 rug. 2018-08-30 12:11 '18, 12:11 pm 2018-08-30 12:11

Jums reikia atlikti 2 veiksmus -

 1) git remote remove origin 2) git remote add origin git@github.com:NuggetAI/nugget.git 

Atminkite, kad git URL yra ssh URL, o ne https URL. Ją galite pasirinkti čia.

2019

11 июня '18 в 23:58 2018-06-11 23:58 Atsakymas suteikiamas gydyti birželio 11 d., 18 val. 11:58 val. 2018-06-11 23:58

Jei klavišas ssh or.netrc jums neveikia, tada kitas paprastas, bet ne toks saugus sprendimas, kuris jums gali dirbti, yra „ git-credential-store“ - „Helper“, skirtas įrašyti kredencialus diske.

 git config --global credential.helper store 

Pagal numatytuosius nustatymus įgaliojimai bus išsaugoti ~/.git-credentials . Ji bus sukurta ir įrašoma.

Atkreipkite dėmesį, kad naudojant šį pagalbininką jūsų slaptažodžiai bus saugomi nešifruotai diske, apsaugoti tik failų sistemos leidimais. Jei tai negali būti priimtinas saugumo mainai.

0
12 апр. Atsakymas pateikiamas rumman0786 12 bal 2018-04-12 13:12 '18, 12:12 pm 2018-04-12 13:12

Štai kas man veikė:

 git remote set-url origin https://username@github.com/username/reponame.git 

Pavyzdys:

 git remote set-url origin https://jsmith@github.com/jsmith/master.git 
0
09 дек. Atsakymą pateikė vartotojo5854766 09 dec. 2018-12-09 20:30 '18, 20:30 2018-12-09 20:30

Kaip sakė daugelis vartotojų, tiesiog reikia pakeisti savo git saugyklos URL iš https į SSH.

Jei jūsų kompiuteryje nesukūrėte SSH rakto, turėsite tai padaryti.

Be papildomos informacijos, atlikus šį pakeitimą, vis dar gavau tą pačią klaidą: „Neleidžiama naudotis“.

Mano atveju, problema buvo ta, kad naudoju „Windows“ apvalkalą, kad būtų vykdoma ngh komanda; Kadangi ši komanda turėtų atidaryti kvietimą prašyti SSH frazės, o „Windows“ korpusas neatidaro tokių užklausų, autentifikavimas tiesiog nepavyko.

Taigi, aš tiesiog reikėjo atidaryti git shell ir vykdyti ngh komandą ten, įterpti SSH frazę į užklausą kiekvieną kartą, kai ji to paprašė, ir "voila" ... Tai tiesiog dirbo gerai!

0
03 апр. Atsakymą pateikė Thisisalexis 03 Bal. 2018-04-03 17:16 '18 at 17:16 pm 2018-04-03 17:16

Jei naudojate „git“ (pvz., „Git bash“) pagal „Windows“ (ir jei nenorite perjungti iš https į ssh)

Taip pat galite naudoti https://github.com/Microsoft/Git-Credential-Manager-for-Windows

Ši programa išsaugos jūsų naudotojo vardą ir slaptažodį ...

-1
11 июня '14 в 16:08 2014-06-11 16:08 atsakymas duotas boly38 birželio 14 d. 14 val. 16:08 2014-06-11 16:08

Kiti klausimai apie „ arba užduoda klausimą