Https: // istifadə edərkən bir parol daxil etməyi bir yolu var GitHub?

Son zamanlarda, mənim depolarimin sinxronizasiyasını https: // GitHub (firewall ilə əlaqədar problemlər üzündən) və hər dəfə bir parol istəməyə çevirdim. Mən SSH sertifikatına sahib oldum və bu kifayət idi. Mənim vəziyyətimdə (http / https istifadə edərək) parol bypass bir yol var?

1572
17 марта '11 в 20:47 2011-03-17 20:47 Zepplock 17 mart 2011-ci il saat 20: 00- da təyin olunub 2011-03-17 20:47
@ 24 cavab

Git versiyası 1.7.9 və daha sonra

Git 1.7.9 (2012-ci ilin yanvar ayının sonunda azad edilib) olduğundan, Git-in müvəqqəti HTTP / HTTPS paroluna girmə ehtiyacı qarşısını almaq üçün etibarlı bir mexanizm var. ( Aşağıdakı şərhlərdə bu yeni xüsusiyyəti göstərmək üçün dazonic sayəsində).

Git 1.7.9 və ya daha sonra, sadəcə aşağıdakı kimlik məlumat yardımçılarından birini istifadə edə bilərsiniz:

 git config --global credential.helper cache 

... Git'e şifrənizi yaddaşda yaddaşda saxlamağı deyir (default olaraq) 15 dəqiqə. Daha uzun bir zamanaşımı bilərsiniz:

 git config --global credential.helper "cache --timeout=3600" 

(Bu nümunə Linux üçün GitHub yardım səhifəsində təqdim edildi.) Sənədlərinizi sonsuza qədər saxlaya bilərsiniz, əgər lazım olsa, aşağıdakı digər cavabları baxın.

GitHub yardımı həmçinin , Mac OS X-də olduğunuzu və Homebrew- ni Git'i qurmaq üçün istifadə etdikdə, öz Mac OS X depolarını aşağıdakılarla istifadə edə bilərsiniz:

 git config --global credential.helper osxkeychain 

Windows üçün Windows üçün Git Helper Credential Manager meneceri və ya msysgitdə wincred var .

 git config --global credential.helper wincred # obsolete 

Windows üçün Git ilə 2.7.3 + (Mart 2016):

 git config --global credential.helper manager 

Linux üçün, gnome-keyring (və ya KWallet kimi digər bir düyməsini tətbiq) istifadə edə bilərsiniz.

Git versiyalarında 1.7.9-a qədər

1.7.9 versiyasından əvvəl Git versiyalarında bu daha təhlükəsiz bir seçim mövcud deyil və belə bir şifrə əlavə etmək üçün boş origin tərəfindən istifadə olunan URL-ni dəyişdirməlisiniz:

 https://you:password@github.com/you/example.git 

... başqa sözlə, ilə :password istifadəçi adından və əvvəlki :password @ .

Uzaq origin üçün yeni bir URL təyin edə bilərsiniz:

 git config remote.origin.url https://you:password@github.com/you/example.git 

https istifadə etdiyinizdən əmin olun və bunu etməlisiniz, əgər GitHub şifrəniz .git bir mətn redaktorunda saxlanılacaq, bu da açıq-aydın istənilməzdir.

Git'in hər hansı versiyası ilə (yaxşı, versiya 0.99-dan bəri)

Alternativ bir yanaşma, ~/.netrc istifadəçi adınızı və şifrənizi ~/.netrc , ancaq uzaq bir URLdə parol saxladığınız kimi, parolınız düz mətndə diskə yazılacaq və buna görə də, daha az təhlükəsiz və tövsiyə olunmayacaqdır. Ancaq bu yanaşmanı tətbiq etmək istəyirsinizsə, aşağıdakı satırı ~/.netrc :

 machine <hostname> login <username> password <password> 

... server <username><username><password> istifadəçi adı və şifrənizlə birlikdə <hostname> əvəz. Ayrıca, bu faylda fayl sistemi məhdudiyyətlərini təyin etməyi unutmayın:

 chmod 600 ~/.netrc 

Qeyd edək ki, Windows-da bu faylın adını " _netrc " adlandırmalısınız və ətraf mühitə% HOME% - daha çox məlumat üçün baxa bilərsiniz.

2078
17 марта '11 в 20:54 2011-03-17 20:54 Cavab Mark Longair tərəfindən 17 Mart 'da 20:54' də verildi 2011-03-17 20:54

Git də şəxsiyyət vəsiqələrini aşağıdakıları istifadə edərək daimi olaraq saxlaya bilərsiniz:

 git config credential.helper store 

Qeyd Bu əlverişli olsa da, Git sizin etimadnamənizi layihənin dizininizdə ("ev" qovluğu üçün aşağıya bax) bir yerli faylda (.git-etimadnamələr) düz metin olaraq saxlayacaqdır. İstəmirsinizsə bu faylı silin və önbelleği istifadə edin.

Git'i davam etdirmək isterseniz, uzaq bir depoya qoşulmaq üçün lazım olan hər zaman sizin etimadnamənizi tələb etmək üçün bu əmri çalıştıra bilərsiniz:

border=0
 git config --unset credential.helper 

.git-credentials %HOME% dizinindəki layihə --global fərqli olaraq saxlamaq üçün: --global bayrağı istifadə edin

 git config --global credential.helper store 
615
03 сент. Giri Alwar tərəfindən verilmiş cavab 03 Sep. 2012-09-03 04:14 '12 at 4:14 'da 2012-09-03 04:14

TL; DR; Git 1.8.3 + ilə şifreli netrc faylını istifadə edin.

Git HTTPS deposu URL'sinin şifrə saxlanması %HOME%/_netrc ~/.netrc (Unix) və ya %HOME%/_netrc (qeyd _ ) istifadə etməklə mümkündür.

Ancaq bu fayl parolunuzu düz mətndə saxlayacaq.

Qərar . Bu faylı GPG (GNU Gizlilik qorunması) ilə şifrələndirin və Git'i hər şifrəni açın ( push / pull / fetch / clone ).


Windows üçün addım təlimat

Windows'da:

(Git gpg.exe var, ancaq tam GPG yüklemesini istifadə edərək, GPG anahtarıyla əlaqəli gpg-agent.exe xatırlayan gpg-agent.exe daxildir.)

(Bu əsasda bir parol qoymaq unutmayın.)

  • Bu əsasa güvən

  • %PATH% dəki kataloqdakı skript etmə məlumatı köməkçisini quraşdırın:

     machine a_server.corp.com login a_login password a_password protocol https machine a_server2.corp.com login a_login2 password a_password2 protocol https 

(İstifadə etdiyiniz https bağlı olaraq ' protocol ' hissəsini unutma: ' http ' və ya ' https '.

  • Bu faylı şifrələndirin:

     git config --local credential.helper "netrc -f C:/path/to/_netrc.gpg -v" 

(Qeyd edək ki, ' / ': C:\path\to... işləməyəcəkdir.) (İlk növbədə, nə baş verdiyini öyrənmək üçün -v -d istifadə edə bilərsiniz.)

Bu nöqtədən, kimlik doğrulama tələb edən HTTP (URL) URL'sini istifadə edən hər hansı bir Git əmri bu _netrc.gpg faylını _netrc.gpg və əlaqəli server ilə əlaqəli giriş / paroldan istifadə edir. İlk dəfə olaraq, GPG, faylın şifresini çözmək üçün GPG açarınızın əsas ifadəsini daxil etməyinizi xahiş edəcək. Digər hallarda, ilk GPG çağırışına avtomatik olaraq başlayan gpg-agent , bu sözü sizə təqdim edəcək.

Beləliklə, bir neçə URL / giriş / şifrəni bir faylda yadda saxlaya bilərsiniz və diskinizdə şifrəli şəkildə saxlaya bilərsiniz.
Xahiş etdiyimiz parol yaddaşda saxlanılacağından, hər bir uzaqdan xidmətiniz üçün yadda saxlamaq və girmə (seans başına bir dəfə) fərqli bir parol girməli olduğunuz "önbellek asistandan" daha rahat tapa bilərsiniz.

77
21 авг. cavab VonC 21 aug verilir . 2013-08-21 18:48 '13 at 18:48 2013-08-21 18:48

HTTPS URL'sində istifadəçi etimadnaməsini saxlamaq üçün sadə, köhnə üsuldur:

 https://user:password@github.com/... 

URL'yi git remote set-url <remote-repo> <URL> ilə dəyişə bilərsiniz

Bu yanaşmanın aşkar bir dezavantajı, parolu düz mətndə saxlamaq lazımdır. Siz hələ də istifadəçi adınızı ( https://user@github.com/... ) daxil edə bilərsiniz ki, ən azı sizi https://user@github.com/... xilas edəcək.

Siz SSH-ə keçə və ya GitHub müştəri proqramından istifadə edə bilərsiniz.

32
06 янв. Cavab yanvarın 06- dək verilir 2014-01-06 19:43 '14 at 19:43 2014-01-06 19:43

Kimlik kartı istifadə edin.

OSXLinux-da 2.11-də keçmək üçün , git quraşdırılmış etimadnaməsini saxlaya bilərsiniz

 git config --global credential.helper libsecret 

Windows üçün msysgit 1.7.9+ üçün:

 git config --global credential.helper wincred 

OS X'de 1.7.9 + naviqasiya üçün istifadə edin:

 git config --global credential.helper osxkeychain 
28
09 сент. cavab roo2 09 sep verilir . 2015-09-09 06:57 '15 at 06:57 2015-09-09 06:57

Yalnız istifadə edə bilərsiniz

 git config credential.helper store 

Bir dəfə bir klik və ya kliklə bir parol daxil edərkən, .git-etimadnamələrində düz mətn olaraq saxlanılır (bir az güvənir, ancaq onu təhlükəsiz qovluğa qoyun)

Və bu, bu səhifədə göstərildiyi kimi:

https://git-scm.com/docs/git-credential-store

25
21 сент. Cavab ləğv olunur . 2016-09-21 16:03 '16 saat 16:03 'da 2016-09-21 16:03

Yəqin ki, bir az yavaşım, amma mənə dərhal aydın deyil ki, ilk növbədə bir köməkçini endirməlisiniz! Mən Atlassian'daki credential.helper hesabını tapdım ki, Git deposu ilə daimi identifikasiya edirəm, buna kömək edirəm.

Sitat:

OSX'teki kimlik bilgilerinin önbelleğe alınması ile Git'i kullanmak isterseniz, aşağıdakı adımları uygulayın:

İkili git -dardensial-osxkeychain-ni yükləyin.

Çalıştırılabilir faylın ikili olduğunu doğrulamak üçün aşağıdakı əmri çalıştırın:

 chmod a+x git-credential-osxkeychain 

/ Usr / local / bin qovluğuna yerləşdirin.

Aşağıdakı əmri çalıştırın:

 git config --global credential.helper osxkeychain 
18
05 окт. cavab Oct Oct 05 verildi . 2012-10-05 08:31 '12 saat 08:31 'da 2012-10-05 08:31

Yalnız giriş kimlik bilgilerinizi URL'ye daxil edin:

 git remote rm origin git remote add origin https://username:mypassword@github.com/path/to/repo.git 
15
03 июля '14 в 10:13 2014-07-03 10:13 Cavab Tarun Gupta tərəfindən verilir 03.07.2014 10:13 2014-07-03 10:13

GNU / Linux parametrlərində ~ / .netrc də yaxşı işləyir:

 $ cat ~/.netrc machine github.com login lot105 password howsyafather 

Bu HTTPS nəqliyyat üçün Git şəbəkə kitabxanalarının hansı istifadə olunduğuna bağlı ola bilər.

15
05 дек. Cavab helloPiers tərəfindən 05 dekabr. 2012-12-05 16:28 '12 at 16:28 2012-12-05 16:28

Windows'da, Git Credential Manager (GCM) plugin istifadə edə bilərsiniz. Hal-hazırda Microsoft tərəfindən dəstəklənir. Ən yaxşı hissəsi şifrəni, Windows hesabı saxlama anbarında saxlayır və düz mətn kimi deyil.

Quraşdırıcı> layihə səhifədə görünür . Bu, həm də quraşdırılmış etimadnamə menecerini istifadə edərək, git-for-windows rəsmi versiyasını quraşdırır. Github (və digər serverlər) üçün iki faktorlu identifikasiyası təmin edir. İlk giriş üçün qrafik interfeys var.

Cygwin istifadəçiləri üçün (ya da rəsmi go-for-windows-istifadə edənlər), əl yükləməsini seçə bilərsiniz. Yükləmələrdən zip paketini yükləyin. Paketi install.cmd , sonra install.cmd . Bu ~/bin . ( ~/bin PATH olduğunuzdan əmin olun.) Sonra bu əmri ilə konfiqurasiya edin:

 git config --global credential.helper manager 

Git, hər hansı bir server üçün kimlik doğrulaması git-credential-manager.exe çalıştırır.

12
24 мая '14 в 10:49 2014-05-24 10:49 cavab Nadeem Khedr 24 may '14 saat 10:49 2014-05-24 10:49 verilir

Şifrəniz, Mark kimi qeyd etdiyimiz kimi, dəqiq mətndə saxlamağı istəmirsinizsə, basmaq üçün daha fərqli bir github URL istifadə edə bilərsiniz. [remote "origin"] altında konfiqurasiya faylında:

 url = git://github.com/you/projectName.git pushurl = git@github.com:you/projectName.git 

Şifrə o zaman tıklandığında soruşur, lakin heç olmasa açıq mənbə layihələri üçün çıxarıldığında deyil.

11
19 марта '11 в 11:12 2011-03-19 11:12 Cavab MatrixFrog tərəfindən 19 Mart '11' də saat 11:12 'də verildi 2011-03-19 11:12

Kimlik məlumatların köməkçiləri istifadə edə bilərsiniz.

8
27 марта '13 в 19:23 2013-03-27 19:23 Cavab Charan 27 Mart '13 'da saat 19:23' da verilir. 2013-03-27 19:23

Oauth

Öz şəxsi token API ( OAuth ) yarada və müntəzəm etimadnamələr kimi istifadə edə bilərsiniz (at: /settings/tokens ). Məsələn:

 git remote add fork https://4UTHT0KEN@github.com/foo/bar git push fork 

.netrc

Başqa bir yol, məsələn, istifadəçi / şifrənizi ~/.netrc ( _netrc də Windows-da) istifadə _netrc

 machine github.com login USERNAME password PASSWORD 

Https:

 machine github.com login USERNAME password PASSWORD protocol https 

etibarlılıq köməkçisi

HTTPS-dən istifadə edərək, GitHub parolunuzu Git-də önbelleğe almaq üçün, Git-ə GitHub-a hər dəfə danışdıqda, GitHub istifadəçi adınızı və şifrənizi yadda saxlamağa məlumat vermək üçün istifadəçi arayışından istifadə edə bilərsiniz.

  • Mac: git config --global credential.helper osxkeychain ( osxkeychain helper tələb olunur)
  • Windows: git config --global credential.helper wincred
  • Linux və başqaları: git config --global credential.helper cache

mövzuda:

6
20 июня '16 в 1:44 2016-06-20 01:44 cavab 20 İyun 2013 tarixində 1:44 2016-06-20 01:44 tarixində verilir

repo klonlamasından sonra repo repo/.git/config redaktə edə bilərsiniz və aşağıda göstərildiyi kimi bəzi konfiqurasiya əlavə edə bilərsiniz:

 [user] name = you_name password = you_password [credential] helper = store 

Daha sonra bir usernamepassword üçün istenmeyiniz.

6
05 янв. Xiaorong Liao tərəfindən verilmiş cavab 05 Yanvar 2017-01-05 12:42 '17 də 12:42 2017-01-05 12:42

Hesab parolunun əvəzinə, bir identifikasiya simvolu istifadə edin. GitHub ayarlarına / tətbiqlərinə keçin və sonra giriş simvolu yaradın. Marker şifrə ilə eyni şəkildə istifadə edilə bilər.

Siqnal, istifadəçilər layihə üzərində işləmək üçün hesab şifrəsini istifadə edə bilməyəcək şəkildə tərtib edilmişdir. İdarə edərkən yalnız bir parol istifadə edin, məsələn, yeni tokenslər yaratmaq və ya köhnə ayələrini ləğv etmək.


Bir GitHub hesabına tam istifadəçi imkanı verən bir mö'cüzə və ya parol əvəzinə, xüsusi bir layihə yerləşdirmə anahtarı bir layihə havuzuna giriş təmin etmək üçün istifadə edilə bilər. Bir Git layihəsi, bu digər əsası da, normal hesabı ilə digər Git hesablarına və ya layihələrə daxil olanda aşağıdakı addımlarda istifadə etmək üçün konfiqurasiya edilə bilər:

  • UserKnownHostsFile anahtarı üçün bir Host , IdentityFile , bəlkə UserKnownHostsFile və ehtimal ki, User (mənə ehtiyacınız olmur baxmayaraq) olan bir SSH konfiqurasiya faylını yazın.
  • ssh -F /path/to/your/config $* bərabər olan SSH skriptinin qüsusunu yazın.
  • GIT_SSH=/path/to/your/wrapper düzenli Git komutunuzun GIT_SSH=/path/to/your/wrapper hazırlayın. Burada git remote (mənşə) git@github.com:user/project.git formatında istifadə etməlidir git@github.com:user/project.git .
5
04 июня '14 в 17:31 2014-06-04 17:31 cavab 04 iyun '14 'da saat 17:31' də minghua tərəfindən verilmişdir 2014-06-04 17:31

Mənim etdiyim kimi iki faktörlü identifikasiyası istifadə edərkən hər şey bir az fərqlidir. Yaxşı bir cavabı başqa yerdə tapmadım, buna görə də onu daha sonra tapa biləcəyim üçün burada qalacağam.

İki faktorlu autentifikasiya istifadə edirsinizsə, bir istifadəçi adını və şifrəsini göstərmək hətta işləməyəcək - giriş icazəsi qəbul olunacaq. Ancaq tətbiqi giriş simvolunu istifadə və sizin üçün önbellek üçün Git etimadnaməsi köməkçisi istifadə edə bilərsiniz. İşarədir:

Və gördüyüm yerləri xatırlamıram, ancaq sizdən istifadəçi adınızı təqdim etməyi xahiş etdiyiniz zaman ərizə giriş simvolu əlavə olunur. Sonra şifrəni boş buraxın. Mənim Mac-da çalışdı.

4
25 сент. Cavab JnBrymn tərəfindən verilir Sep 25 2014-09-25 22:46 '14 at 10:46 pm 2014-09-25 22:46

Bilirəm ki, bu, təhlükəsiz bir həll deyil, bəzən sadə bir həll lazımdır - başqa bir şey yükləmədən. Və köməkçi mağaza = mənim üçün işləmədiyi üçün bir köməkçi yaratdım:

Bir skript yaratmaq və istifadəçinin bin qovluğuna yerləşdirin, burada adın credfake ilə , bu skript sizin istifadəçi adınızı və şifrənizi təmin edəcək:

 #!/bin/bash while read line do echo "$line" done < "/dev/stdin" echo username=mahuser echo password=MahSecret12345 

bunu edə bilər:

 chmod u+x /home/mahuser/bin/credfake 

sonra gedində konfiqurasiya edin:

 git config --global credential.helper /home/mahuser/bin/credfake 

(və ya yalnız bir repo üçün -Global olmadan istifadə edin)

və - voilá - git bu istifadəçi + şifrəni istifadə edəcək.

3
27 мая '17 в 14:26 2017-05-27 14:26 cavab 27 may '17 saat 14:26 'də bebboa verilir 2017-05-27 14:26

Təhlükəsizlik etmə məlumatlarını istifadə etmək daha yaxşıdır, ancaq onu bir müddət öncə saxlaya bilərsiniz

 git config --global credential.helper cache git config credential.helper 'cache --timeout=3600' 

Kimlik bilgileriniz 3600 saniyə qeyd olunur.

3
17 июля '14 в 13:18 2014-07-17 13:18 cavabını Sarvar Nişonboyev 17 iyul '14 'də saat 13:18' də verəcək 2014-07-17 13:18

Mənim üçün işləyir. Windows 10 istifadə edirəm

 git config --global credential.helper wincred 
2
02 июля '16 в 22:05 2016-07-02 22:05 Cavab Mostafa Nawara tərəfindən 02 iyul '16' da saat 10:05 'də 2016-07-02 22:05' də verilir

Gitcredentials (7) əl səhifəsindən bir cavab var. Mənim vəziyyətimdə, Windows yüklememde kimlik bilgileri önbelleği yoxdur; Kimlik saxlama anbarını istifadə edirəm.

Kimlik saxlama anbarını istifadə etdikdən sonra istifadəçi adı / parol [istifadəçi qovluğu] / faylında saxlanılır. git-etimadnamələri. Bir istifadəçi adı / şifrəni aradan qaldırılması üçün sadəcə faylın məzmununu silin.

2
27 янв. Jan 27-də Mike Lin tərəfindən verilmiş cavab 2014-01-27 21:45 '14 saat 21:45 'də 2014-01-27 21:45

Adətən bu kimi bir şeyin uzaq bir url var,

 git remote -v origin https://gitlab.com/username/Repo.git (fetch) origin https://gitlab.com/username/Repo.git (push) 

git keçişi istifadə edərkən istifadəçi adını və şifrənizi atmaq istəyirsinizsə, cəhd edin

  git remote set-url origin https://username:password@gitlab.com/username/Repo.git 

Mən əvvəlcə eyni URL (parol daxil olmaqla istifadəçi məlumatı ilə) əlavə etdim.

Qeyd. İstifadəçi adı e-poçt identifikatoru olduqda bu işləmir.

 git remote -v origin https://username:password@gitlab.com/username/Repo.git (fetch) origin https://username:password@gitlab.com/username/Repo.git (push) 
1
15 дек. Cavab Nayagam 15 dekabr. 2017-12-15 11:36 '17 saat 11:36 'də 2017-12-15 11:36

Siz həmçinin bashrc faylını düzəltdiniz və ona bir skript əlavə edin. Bir dəfə gitə qaçdığınız zaman parol istənir və bağlanmadan əvvəl xatırlayırsınız.

 SSH_ENV=$HOME/.ssh/environment # start the ssh-agent function start_agent {echo "Initializing new SSH agent..."# spawn ssh-agent/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"echo succeededchmod 600 "${SSH_ENV}". "${SSH_ENV}" > /dev/null/usr/bin/ssh-add } if [ -f "${SSH_ENV}" ]; then. "${SSH_ENV}" > /dev/null  ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {  start_agent;  } elsestart_agent; fi 
1
14 июля '16 в 21:02 2016-07-14 21:02 cavab 14 iyul, saat 21:02 2016-07-14 21:02 A-patel-guy tərəfindən verilir

Bəstəkarın sənədlərində GitHub API'sından git clone kimi çıxış etmək üçün onu dayandıra bilər:

GitHub deposunda no-api düyməsini true olaraq təyin etsəniz, GitHub API istifadə etmək əvəzinə, hər hansı digər Git deposunda olduğu kimi, klubu saxlayacaqsınız. Lakin git sürücü istifadə fərqli olaraq, bəstəkar hələ GitHub zip faylları istifadə etməyə çalışacağıq.

Beləliklə, bölmə belə görünür:

 "repositories": [ { "type": "vcs", "no-api": true, "url": "https://github.com/your/repo" } ], 

API bir nədənsə mövcud olduğunu unutmayın. Beləliklə, bu, github.com üzərindəki yükün artırılması ilə bağlı son çarə metodu olmalıdır.

1
05 июня '14 в 18:09 2014-06-05 18:09 Cavab verildi sebastianwagner İyun 05 '14 da 18:09 2014-06-05 18:09
  • Zaten projeleriniz varsa:

    • your/project/path/.git/config . Açın. Və url = https://username@github.com/project.git kimi URL'leri url = https://username@github.com/project.git : url = https://username:password@github.com/project.git
    • Və ya bu əmrləri layihə olaraq yerinə yetirin:
      git remote rm origin
      git remote add origin https://username:password@github.com/project.git
  • Yeni bir layihənin klonlanması:
    git clone https://username:password@github.com/project.git

  • Mövcud depoya qoşulun:
    git remote add origin https://username:password@github.com/project.git
0
08 апр. Cavab verilib 08 apr. 2018-04-08 09:15 '18 saat 09:15 'da 2018-04-08 09:15

tags ilə bağlı digər suallar və ya bir sual