Mai mult
Cum pot oferi un nume de utilizator și parola atunci când rulează "git clona git@remote.git"?
Știu cum de a oferi un nume de utilizator și o parolă pentru un HTTPS cerere de genul asta:
git clone https://username:password@remote
Dar eu'd dori să știu cum să furnizeze un nume de utilizator și o parolă de la distanță astfel:
git clone git@remote.git
Am'am incercat asa:
git clone username:password@git@remote.git
git clone git@username:password@remote.git
git clone git@remote.git@username:password
Dar n-au't a lucrat.
739
8
Utilizare:
În acest fel a lucrat pentru mine la un depozit GitHub.
Bazat pe Michael Scharf's comentariu:
Puteți lăsa parola, astfel încât nu va't fi înregistrate în Bash istorie fișier:
Acesta vă va cere parola.
A
user@host:path/to/repo
format spune Git de a folosi ssh pentru a vă conecta la "gazdă" cu username-ul "utilizator". Degit ajuta clona
:Partea dinainte de
@
este numele de utilizator, și metoda de autentificare (parola, cheie publică, etc.) este determinată de ssh, nu Git. Git nu are nici o modalitate de a trece o parola la ssh, pentru ssh nu s-ar putea chiar să utilizați o parolă în funcție de configurația serverului de la distanță.Folosi ssh-agent` pentru a evita tastarea parolelor tot timpul
Dacă tu nu't doriți să introduceți parola ssh tot timpul, tipic soluție este de a a genera o cheie publica/privata pereche, a pus cheia publică în
~/.ssh/authorized_keys
file pe server de la distanță, și sarcina dumneavoastră cheia privată înssh-agent
. Vedea, de asemenea, https://stackoverflow.com/q/1595848/712605, GitHub's pagina de ajutor pe cheie ssh passphrases, gitolite's ssh documentația, și Heroku's, chei ssh documentația.Alegerea între mai multe conturi la GitHub (sau Heroku sau...)
Dacă aveți mai multe conturi la un loc, cum ar fi GitHub sau Heroku, ai'll avea mai multe chei ssh (cel puțin una pentru fiecare cont). Pentru a alege contul din care doriți să vă conectați drept, trebuie să - i spun ssh care cheia privată pentru a utiliza.
De exemplu, să presupunem că ai avut două GitHub conturi: "foo" și "bar". Ssh-cheie pentru " foo " e
~/.ssh/foo_github_id și ssh-cheie pentru " bar " este
~/.ssh/bar_github_id. Doriți să accesați
git@github.com:foo/foo.git cu " foo "contul și git@github.com:bar/bar.git cu" bar " cont. Ar trebui să adăugați următoarele la~/.ssh/config
:Apoi, va trebui clona cele două centrale de tranzacții, după cum urmează:
Evitarea ssh cu totul
Unele servicii oferă accesul HTTP ca o alternativă la ssh:
https://username:password@github.com/username/repository.git
https://username:password@gitorious.org/project/repository.git
AVERTISMENT: Adăugarea parola pentru a clona adresa URL va provoca Git pentru a stoca parola în text clar
.git/config
. Pentru a stoca în siguranță parola atunci când se utilizează HTTP, utilizați o acreditare helper. De exemplu:Cele de mai sus va provoca Git pentru a cere parola o dată la fiecare 15 minute (implicit). Vezi
git ajuta acreditările
pentru detalii.În comentariile de @Bassetassen's răspunde, @plosco menționat că puteți folosi git clona https://@github.com/username/repository.git la clona de la GitHub la foarte puțin. Am crezut că mi-ar extinde pe cum să faci asta, în caz că vine cineva peste acest răspuns așa cum am făcut în timp ce încerca pentru a automatiza unele clonare.
GitHub are o foarte la îndemână ghid cu privire la modul de a face acest lucru, dar nu't de acoperire ce să faci dacă vrei să-l includă toate într-o singură linie pentru scopuri de automatizare. Acesta avertizează că adăugarea simbolului clona URL-ul va stoca în text clar în
.git/config
. Aceasta este, evident, un risc de securitate pentru aproape fiecare caz de utilizare, dar din moment ce planul privind ștergerea repo și revocarea token când m-am'm făcut, eu nu't de îngrijire.1. A crea un Semn
GitHub are o tot ghidul aici despre cum să obțineți un semn, dar aici's TL;DR
2. Clona Repo
Același lucru ca și comanda @plosco dat,
git clona https://<semn>@github.com/<nume de utilizator>/<depozit>.git
, doar înlocuiți<semn>
, ` " și " cu orice info este.Dacă doriți să clona la un anumit folder, doar se introduce la dosar adresa la sfârșitul anului astfel:
git clona https://<semn>@github.com/<nume de utilizator>/<depozit.git> <dosar>", unde " <dosar>
este, ai ghicit, pe folder pentru a-l clona a! Puteți, desigur, folosi.
,..
,~
, etc. aici ca tine poate în altă parte.3. Nu Lasă Urme
Nu toate de acest lucru poate fi necesar, în funcție de cât de sensibil ce ai're face este.
rm-rf <dosar>
.git remote elimina origine sau doar elimina semn de funcționare
git remote set-url-ul de origine https://github.com//<depozit.git>`.Rețineți că m-am'm nici pro, deci cele de mai sus pot să nu fie sigure, în sensul că nici o urmă va fi lăsat pentru orice fel de munca medico-legale.
Deși există multe răspunsuri, singur cu care se confruntă problemă care se repetă atunci când numele de utilizator sau parola are caractere speciale în ea.
URL-ul codifica numele dvs. de utilizator și parola pentru git, apoi să-l utilizați ca parte a URL-ul în sine (atunci când nu există nici o preocupare de securitate).
Spune, URL codificat cu valoare de nume de utilizator
și URL codificat valoare de parola
Apoi GIT Clona URL-ul ar arata ca,
Sper că acest lucru vă ajută.
Doar în cazul în care, vreau să URL encode online: https://www.urlencoder.org/
Am rezolvat această problemă în felul următor:
Pe Windows, următorii pași ar trebui să re-trigger GitHub fereastra de autentificare atunci când `git clona ' ing:
Rula acest lucru înainte de clonare în același mod, ar trebui să fie reparate!
Acesta este un excelent Stack Overflow întrebare, iar răspunsurile au fost foarte instructiv, astfel că am fost capabil de a rezolva o problemă enervant m-am întâlnit recent.
Organizația pentru care lucrez pentru utilizări
Atlassian's BitBucket
produs (nu Github), în esență, versiunea lor de GitHub, astfel încât depozitele pot fi asigurate în totalitate pe premisa. Am fost difuzate într-o problemă similară ca @de coordonate, în care parola a fost necesar pentru un nou repository-am verificat. Acreditările mele au fost salvate la nivel global pentru toateBitBucket
proiecte, așa că am'm nu sunt sigur ce a determinat pierderea de acreditare.Pe scurt, am fost în măsură să introduceți următoarele GIT comanda (alimentarea numai numele meu de utilizator), care apoi solicită Git's Credential Manager pentru a cere pentru parola, pe care apoi am fost capabil de a salva.
NOTĂ: în paranteze director sub-căi pur și simplu se referă la referințele interne, și va varia pentru tine!