Git bana bir şifre sormaya devam ediyor


665

Git'i bir süredir kullanıyorum, ancak sürekli bir şifre talebi beni duvardan yukarı çekmeye başlıyor.

Mac OS X ve GitHub kullanıyorum ve Git ve SSH anahtarlarımı GitHub'ın Git'i Ayarla sayfasında belirtilen şekilde ayarladım .

Ayrıca github SSH anahtarını GitHub'ın SSH anahtar parolaları sayfasında belirtildiği gibi Mac OS X anahtar zincirime ekledim . Ortak anahtarım Git'e kayıtlı.

Yine de Git pull'i her denediğimde kullanıcı adımı ve şifremi girmem gerekiyor. Bunun için ayarlamam gereken bir SSH anahtarı dışında bir şey var mı?


1
Aptalca bir soru, ama git ile makineye sadece ssh kullanırken SSH anahtarının çalıştığını doğruladınız mı?
Kurt Stutsman

4
Ssh -T git@github.com gibi bir şey mi demek istiyorsun? Evet, bu iyi çalışıyor (eğer biraz yavaşsa).
Catherine


Https URL'si için, (git1.8.3 + ile) git kimlik bilgisi yardımcısını kullanabilirsiniz ' netrc'. Burada tam bir örneğe bakın .
VonC

Ben bir Windows kullanıcısıyım ve sunucunun yetkili_anahtarlar dosyasına ortak anahtarımı ekledikten sonra bile şifre isteği sorunuyla karşı karşıya kaldım. Asıl sorun, ortak / özel anahtarlarımı c: \ program files \ git klasörünün .ssh klasörü altında tutmamamdı. Herhangi biri böyle bir sorunla karşılaşırsa, lütfen anahtarlarınızı bu klasöre kopyalayın ve itmeyi / çekmeyi deneyin.
Raja Amer Khan

Yanıtlar:


797

Sanırım yanlış Git depo URL'sine sahip olabilirsiniz.

.git/config[Uzak "başlangıç ​​noktası"] bölümünü açın ve bulun. SSH olanını kullandığınızdan emin olun:

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

Klonla'yı tıklar veya indirip ssh'yi seçerseniz, deponuzun ana sayfasında SSH URL'sini görebilirsiniz .

Ve DEĞİL httpsveya gittek:

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

Artık kullanıcı adı ve şifre yerine yalnızca SSH anahtarıyla doğrulama yapabilirsiniz .

Git bundan şikayet ederse 'origin' has already been added, .configdosyayı açın ve url = "..."bölümü aşağıdaki [remote origin]gibi düzenleyinurl = ssh://github/username/repo.git


Aynı şey diğer hizmetler için de geçerlidir. Adresin şöyle göründüğünden emin olun:protocol://something@url

Örneğin .git/configiçin Azure DevOps:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

4
Bu olabilir. Git remote -v'yi çağırdığımda şunu alıyorum : origin github.com/Foo/Bar.git (fetch) origin github.com/Foo/Bar.git (push) iken SSH ile çalışmak şöyle görünmeli: origin git @ github.com: Foo / Bar.git (getirme) kökenli git@github.com: Foo / Bar.git (itme) Bunun nedeni başlangıçta GitHub'ın Mac uygulamasını ( mac.github.com ) kullanarak projemi teslim almış olmam olabilir . Nasıl düzeltebileceğime dair bir fikrin var mı?
Catherine

8
URL'yi .git / config dosyasında düzeltin, düzeltmek için git-remote kullanın veya yerel deponuzu silin ve doğru URL ile yeniden kopyalayın.
static_rtti

91
Bunu hecelemek için (ihtiyaç duyduğum gibi): .git / config dosyasını ve [remote "origin"]bölüm kümesini açın url = ssh://git@github.com/username/Repo.git. Bu benim için çalıştı.
Greg K

13
Garip, @ GregK'nin çözümü benim için işe yaramadı, ama url = git@github.com:organization/Repo.gitişe yaradı. +1 beni doğru yolda aşağı için! Başarı!
jmort253

3
Ssh: // git @ github / [kullanıcı adı] / [reponame] kullanarak CLONE için ne kadar önemli olduğunu vurgulayamıyorum .git, GIT'e her seferinde kullanıcı adınızı ve şifrenizi yazmak zorunda kalmamak için bir anahtar kullanmak istiyor musunuz? . Bunu düzeltmenin tek yolunu yerel repoyu kaldırmak ve tekrar klonlamak oldu. $ Git clone ssh: // git @ github / [kullanıcı adı] / [reponame] .git
Gene Myers

555

Credential.helper yapılandırması

OS X'te (şimdi macOS), bunu Terminal'de çalıştırın :

git config --global credential.helper osxkeychain

Git'in kullanıcı adı ve parolayı saklamak ve parolayı anahtarlıktan özel SSH anahtarınıza almak için Keychain.app dosyasını kullanmasını sağlar.

Windows kullanımı için:

git config --global credential.helper wincred

Sorun giderme

Git kimlik bilgisi yardımcısı doğru yapılandırılırsa, macOS parolayı anahtarlığa kaydeder. Bazen SSH ile anahtarlıkta saklanan parolalar arasındaki bağlantı kopabilir. Anahtarı yeniden anahtarlığa eklemek için ssh-add -Kveya ssh-add ~/.ssh/id_rsatuşunu çalıştırın .

macOS v10.12 (Sierra) ssh olarak değişir

MacOS v10.12 (Sierra) için, ssh-add -Kher yeniden başlatmadan sonra çalıştırılması gerekir. Bundan kaçınmak ~/.ssh/configiçin bu içerikle oluşturun.

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

Gönderen ssh_config man10.12.2 sayfa:

UseKeychain

MacOS'ta, sistemin belirli bir anahtarı kullanmaya çalışırken kullanıcının anahtar zincirinde parola araması gerekip gerekmediğini belirtir. Parola kullanıcı tarafından sağlandığında, bu seçenek aynı zamanda parolanın doğru olduğu doğrulandıktan sonra anahtar zincirinde saklanıp saklanmayacağını da belirtir. Argüman 'evet' veya 'hayır' olmalıdır. Varsayılan 'hayır'dır.

Apple, ne olduğunu açıklayan Technote 2449'u ekledi .

MacOS Sierra'dan önce ssh, parolanızı soran bir iletişim kutusu sunacak ve anahtarlığa kaydetme seçeneği sunacaktı. Bu kullanıcı arayüzü bir süre önce kullanımdan kaldırıldı ve kaldırıldı.


30
Bu, OSX için Github uygulaması (belki de Windows) varsayılan olarak git repos için https yolunu kullandığından bunu yapmanın en iyi yoludur. Birçok kurumsal ağ , güvenlik nedeniyle yalnızca 80 ve 443 numaralı bağlantı noktalarında trafiğe izin verdiğinden, ssh / git yerine https kullanmak için iyi bir neden vardır .
kod

2
Kimlik bilgisi yardımcısını kullanmak için git 1.7.10 veya daha yenisine ihtiyacınız var.
jbandi

3
Keychain.app çözümü için +1. Bu benim için BÜYÜK çünkü işverenimin git sunucusu sadece apache üzerinden sunulan http'yi destekliyor ve .netrcşifrenizi düz metne koyan dosya yöntemini kullanarak kesinlikle cesaret kırıyor .
Josh

3
'credential-osxkeychain' is not a git command.Kimlik bilgisi yardımcısı yüklü olmadığından hatayı aldım . Yüklemek için buradaki talimatları uyguladım
Hugh

2
Sierra güncellemesi için teşekkürler, sadece güncelledim ve dizinimdeki git config --global credential.helper osxkeychainconfig dosyasını eklediğimde neden github pw sormaya devam edemediğini anlayamadım .ssh.
piksel 67

139

MacOS v10.12'ye (Sierra) yükseltme yaptığımda bu bana oldu. Görünüşe göre SSH aracısı yükseltildikten sonra temizlendi.

$ ssh-add -L
The agent has no identities.

Sadece koşmak, ssh-addmevcut kimliğimin yerini buldu. Şifreyi girdim ve tekrar gitmek güzeldi.


9
+1, Sierra güncellemesi ile bozuldu. Parolanın Mac kullanıcı parolanızın değil SSH anahtarınızın parolası olduğunu unutmayın.
mbonness

1
Ssh-add yapmak işe yarıyor ancak Terminal penceresi kapatılarak sıfırlanmış gibi görünüyor. Belki bu yeni bir "özelliktir".
joshd

Uyarı - bu yine başka bir Sierra güncellemesi (10.12.2) ile oldu, ancak aynı düzeltme geçerlidir.
Brian

Terminal kapatıldıktan sonra bunun nasıl sıfırlanmayacağını bilen var mı?
nickjwallin

1
Macbook pro'mi 10.12.2'ye güncelledim ve gitmem kırdı. Ssh-add kullanmak tamamen benim için çalıştı. Teşekkürler @amcc!
jimmyplaysdrums

68

Bunu kullanın: github.com'u uygun ana bilgisayar adıyla değiştirin

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

İzlerken bu ayar zaten var git remote -v. Yine de, hala şifre girmem isteniyor.
IgorGanapolsky

Aynı, önerdiği gibi ayarladım, ancak yine de şifre sorulur, bunu nasıl önleyebilirim?
cyber8200

@IgorGanapolsky: Hiç sizin için bir çözüm buldunuz mu?
cyber8200

1
Bu düzgün çalışıyor. Bu, uzak URL'nin git@**kimlik bilgilerini istemediği ve URL'nin https@**yaptığı :) garip . Böylece bu dokümanı buldum .
Sujit Kumar Singh

54

Diğerlerinin söylediği gibi, bir şifre önbellek yardımcısı yükleyebilirsiniz. Çoğunlukla sadece Mac için değil, diğer platformlar için de bağlantı göndermek istedim. Bir Linux sunucusu çalıştırıyorum ve bu yardımcı oldu: GitHub şifrenizi Git'te önbelleğe alma

Mac için:

git credential-osxkeychain

Pencereler:

git config --global credential.helper wincred

Linux:

git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

5
Linux talimatlarını görmek için üçüncü cevaba geçmek zorunda kaldım, bunlar yaygın olarak referans verilen bir sorun olduğu için birincil cevapta olmalıdır.
KoldBane

22

Ayrıca sizden parolayı kimin istediğini arayın. Git mi yoksa SSH ajanınız mı?

Benim durumumda, her yaptığımda git pullbana soruyordu:

Enter passphrase for key '/work/username/.ssh/id_rsa':

Bu yüzden Git'in bir parola istemesini varsaydım. Bu yüzden, daha sonra SSH ajanımın kapatıldığını fark etmek için çözümler aramaya devam ettim. Hangi kullanılarak eval $(ssh-agent)ve buradassh-add verildiği gibi sabitlenebilir .

Ayrıca ~/.bashrcSSH ajanınızın girişinizde başlatılmasını sağlamak için dosyanıza (veya eşdeğeri) ekleyebileceğiniz küçük bir snippet'in altına yapıştırıyorum .

Her durumda bu yaptığım oldukça aptalca bir hataydı, ancak birisinin yanlış ağaca havlamaktan biraz zaman kazanmasına yardımcı olması durumunda, tıpkı benim yaptığım gibi, burada yayınlamak.

# 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 succeeded
    chmod 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;
    }
else
    start_agent;
fi


Yukarıdaki kodda bir satırı kaçırdığınızdan emin olun - stackoverflow.com/a/18915067/277023 uyarınca - ihtiyacınız olanSSH_ENV="$HOME/.ssh/environment"
kellyfj

20
git config credential.helper store

Not: Bu uygun olsa da Git, kimlik bilgilerinizi proje dizininizin altındaki yerel bir dosyada (.git-kimlik bilgileri) açık metin olarak saklar ("ana" dizin için aşağıya bakın). Bunu beğenmediyseniz, bu dosyayı silin ve önbellek seçeneğini kullanarak geçiş yapın.

Git'in uzak depoya her bağlanması gerektiğinde kimlik bilgilerini sormaya devam etmesini istiyorsanız, bu komutu çalıştırabilirsiniz:

git config --unset credential.helper

Parolaları% HOME% dizininizdeki .git-credentials içinde proje dizininin aksine saklamak için: --global bayrağını kullanın

git config --global credential.helper store

9

Windows'ta Git ve itmek / çekmek için SSH kullanarak GitHub Kılavuzu : Windows'ta Git için Resimli Kılavuz

  1. PuTTY'yi indirin ve yükleyin
  2. Ortam değişkenini 'GIT_SSH' = 'path \ to \ plink.exe' olarak ayarlayın (yüklü macun klasöründe) - çok önemli !!!
  3. Ortam değişkenlerinin etkili olması için Windows Gezgini'ni yeniden başlatın (yalnızca komut istemini yeniden başlatamaz)
  4. Yeni anahtar oluşturmak için puttygen.exe'yi çalıştırın, ortak anahtarı GitHub sitesine kopyalayın
  5. Bu yeni özel anahtarı diske güvenli bir yere kaydedin (tercihen Dropbox değil )
  6. Putty.exe dosyasını çalıştırın ve SSH'yi github.co'ya bağlayın
  7. Hızlı bir şekilde "shell: startup" komutunu çalıştırarak başlangıç ​​klasörüne erişin.
  8. Pageant aracılığıyla Windows ile özel anahtar başlangıç ​​yapın. Başlangıç ​​klasöründe "path \ to \ pageant.exe" "path \ to \ privatekey" sözdizimine sahip bir kısayol oluşturun
  9. Depolarımızın .git / config içindeki 'puttykeyfile' ayarını yapmamız gerekmez
  10. Çok önemli olan, HTTPS yerine GitHub'ın "SSH klon URL'si" nin kullanılmasıdır.

Artık kimse macun kullanmamalı. Artık yerleşik Windows 10 yardımcı programlarıyla her şeyi yapabilirsiniz. Macun bırak, sadece macun ol.
Ian Smith

9

Git 1.7.9+ için Windows'ta, yapılandırma dosyasını bir metin düzenleyicisinde açmak için komut isteminde aşağıdaki komutu çalıştırın:

    git config --global --edit

Sonra dosyaya, yoksa, aşağıdaki bloğu ekleyin veya uygun şekilde düzenleyin:

    [credential "https://giturl.com"]
        username = <user id>
         helper = wincred

Dosyayı kaydedip kapatın. Yukarıdaki değişiklikten sonra kimlik bilgilerini yalnızca bir kez sağlamanız gerekir.


bu mükemmel çalışıyor, saatlerimi kurtardın, şimdi işime konsantre olabilirim, çok teşekkürler kardeşim.
Muhammed Sufyan

9

Parolayı bir süre yeniden yazabilmek için zaman aşımı süresini artırmak için aşağıdaki komutu kullanın

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

Bitbucket için kullandım ve GitHub her ikisi için de çalışıyor. Yapmanız gereken tek şey 3600saniyeler içinde. İstediğiniz ölçüde artırın. Ben 259200yaklaşık 30 gün olan değiştirdim . Bu şekilde her 30 günde bir şifremi tekrar giriyorum.


1
Tamam, bunun bir yeniden başlatmadan sonra devam etmediğini buldum, bu yüzden zaman aşımından bağımsız olarak yine de bir yeniden başlatmadan sonra şifreyi girmeniz gerekiyor ...
Ben

Bu önbellekte yapmak için güzel bir yoldur :) En azından zamanımı kurtardı. Teşekkürler
ChikuMiku

@BenWinding, kimlik bilgilerini bellekte depoladığı için.
z3dd

5

Sorununuzu çözdüğünüzü anlıyorum, ama burada bana yardımcı olan çözümü görmüyorum, işte burada.

Terminalde yazın:

echo "" > ~/.ssh/known_hosts

Bu, known_hostsdosyanızı boşaltır ve kullandığınız ve bağlandığınız her ana bilgisayarı eklemeniz gerekir, ancak sorunu çözdü.


1
cat /dev/null > ~/.ssh/known_hostsaynısını yapacağız.
Kalay Adam

5
> ~/.ssh/known_hostsdaha da kısadır :)
Collin Allen

rm ~ / .ssh / bilinen_hosts da işi yapmalıdır. Buna rağmen tavsiye ediyorum.
orkoden

3
Bir ana bilgisayarı ~ / .ssh / known_hosts dizininden kaldırmanız gerekirse, dosyayı silmekten daha az etkili bir yol vardır. ~ / .ssh / known_hosts sadece bir metin dosyasıdır ve dosyada rahatsız edici ana bilgisayarları bulabilirseniz, satırlarını silebilirsiniz. Dosyayı düzenlemeden önce yedeklemek isteyebilirsiniz. Dosyada yalnızca birkaç girişiniz varsa, silinmesi kötü bir fikir olmayabilir. Benim / / .ssh / bilinen_hosts içinde yüzlerce giriş vardır ve bu yüzden birkaç girişi kaldırmak için hepsini silmek için oldukça hazır değilim bu yüzden çok sayıda sunucu üzerinde çalışıyorum.
Tim Stewart

3
@papan Bu git bana şifremi sormamı engellemez!
IgorGanapolsky

5

Statik_rtti tarafından verilen cevap bir anlamda hacky gibi hissediyorum. Bunun daha önce mevcut olup olmadığını bilmiyorum, ancak Git araçları artık kimlik bilgileri deposu sağlıyor.

Önbellek Modu

$ git config --global credential.helper cache

Kimlik bilgilerini belirli bir süre bellekte tutmak için “önbellek” modunu kullanın. Parolaların hiçbiri diskte saklanmaz ve 15 dakika sonra önbellekten temizlenir.

Mağaza Modu

$ git config --global credential.helper 'store --file ~/.my-credentials'

Kimlik bilgilerini diskteki düz metin bir dosyaya kaydetmek için “depola” modunu kullanın ve bunların süresi asla dolmaz.

Kişisel olarak mağaza modunu kullandım . Depomu sildim, klonladım ve sonra kimlik bilgilerimi bir kez girmek zorunda kaldım.

Referans: 7.14 Git Araçları - Kimlik Bilgisi Deposu


Windows için credential.helper cacheçalışmıyor. Olmalı git config --global credential.helper wincred.
Paulo Merson

Saklamak işe yaradı ve şimdi her zaman şifre sormadan değişikliklerimi yapmama izin veriyor, sen bir cankurtaransın!
g4ost

Linux'ta bu benim için bir iş yaptı git config --local credential.helper store. Benim durumumda, HTTPS'nin üzerindeyim, bu şekilde yalnızca bir kez kullanıcı adı / şifre yazıyorum ve bundan sonra kimlik bilgilerim ~ / .git-credentials
CCarlos

3

orkoden'ın terminalinizdeki Git ile anahtarlık kullanma konusundaki cevabı eksikti ve hataları ortaya çıkarıyor. Anahtarlığınızdaki terminale girdiğiniz kullanıcı adını ve şifreyi kaydetmek için yapmanız gerekenler:

curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
sudo mv git-credential-osxkeychain /usr/local/bin
sudo chmod u+x /usr/local/bin/git-credential-osxkeychain

Sonra girin

git config --global credential.helper osxkeychain

Git konfigürasyonunu kıvrılma olaylarından önce zaten yaptıysanız, sorun değil; işe yarayacak.


1
Ya linux'taysam.
IgorGanapolsky

3

Static_rtti'nin yukarıda söylediği gibi değiştirin

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

için

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

Kendimi https.git / config dosyasında değiştirdim ssh, ama yine de çalışmadı. O zaman gördüm gerekir değiştirmek github.comiçin git@github.com. Gerçek doğru URL'yi almanın iyi bir yolu proje sayfanıza gidip şu bağlantıyı tıklamaktır:

Doğru URL'yi almak için HTTPS'yi SSH olarak değiştirin

Ardından bu URL'yi yapılandırma dosyasına ekleyin.


Bunu yapılandırma yapılandırma dosyamda zaten başka ne kontrol etmeliyim?
cyber8200

Bunu github.com'da da değiştirdiniz mi?
CheesusCrust

3

Linux için Windows Subsystem (WSL) üzerinde çalıştığım tek çözüm buydu:

eval `SSH-agent` ; ssh-add ~/.ssh/id_rsa

Ssh aracısının WSL'ye düzgün şekilde kaydedilmemesiyle ilgili bir sorundu.


Bir whlie oldu, ama bu benim sorunumu düzeltti.
Nam Kim

3

Git'in her zaman GitHub deponuzun oturum açma kimlik bilgilerini istemesini durdurmak istiyorsanız, bu kolayca yapılabilir.

HTTPS yerine SSH kullanma

Başlangıç ​​uzaktan kumandasını HTTPS yerine SSH kullanarak güncelleyebilirsiniz "

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

Git'i Parolanızı ve Kullanıcı Adınızı Saklayacak Şekilde Yapılandırma

Git'i kullanıcı adını ve şifreyi nasıl depolayabileceğiniz aşağıda açıklanmıştır:

git config --global credential.helper store

Ardından, bir oturum için kullanıcı adını ve şifreyi kaydedin:

git config --global credential.helper cache

2

Kabul ediyorum "codehugger" ve "orkoden" talimatını kullanarak benim için çalıştı - NetBeans 7.3 - dosyayı sağ tıklayıp bağlam menüsünü seçtiğinizde - push - 'uzaktan kumandaya it' penceresi açıldı - iki tane var burada seçenekler:

  1. origin:https://github.com/myaccount/myproject.git/

  2. https://github.com/myaccount/myproject.git/

Gördüğünüz gibi, fark URL'deki origin parametresidir - (2) seçeneğini işaretlemek istediğiniz bu seçeneği (1) seçmek istemezsiniz ve bu benim için iyi çalışır.


2

1.Adım: Mevcut yapılandırmanızı kontrol edin

cat .git/config

Alacaksın:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/path_to_your_git.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = your_username
    email = your_email
[branch "master-staging"]
    remote = origin
    merge = refs/heads/master-staging

2.Adım: Uzak kaynağınızı kaldırın

git remote rm origin

3.Adım: Kullanıcı adınız ve şifrenizle uzaktan menşei ekleyin

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git

Uzak kökeni tekrar ekledikten sonra, şubelerinizi uzaktan ve yerel olarak hizalamanız gerekir - böyle bir şey: git branch --set-upstream master origin/master
Richard Bown

2

Git, GitHub ile her etkileşimde bulunduğunuzda sizden bir kullanıcı adı ve parola girilmesini isterse, muhtemelen deponuz için HTTPS klon URL'sini kullanıyorsunuzdur.

Bir HTTPS uzak URL kullanmanın bazı avantajları vardır: SSH'den daha kolaydır ve genellikle katı güvenlik duvarları ve proxy'ler aracılığıyla çalışır. Bununla birlikte, bir havuzu her çekişinizde veya ittiğinizde GitHub kimlik bilgilerinizi girmenizi ister.

Git'i şifrenizi sizin için saklayacak şekilde yapılandırabilirsiniz. Windows için :

git config --global credential.helper wincred

2

MacOS Cataline 10.15 çalıştırıldığında, anahtarlık önbellekleme yöntemi benim için çalışmadı. Ve ben kullanmak https://istemedimssh

İşte benim için işe yarayan:

git remote rm origin

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git

Bu GitLab üzerinde de çalışmalıdır

Kullanıcı adının bir e-posta adresi içerip içermediğinden, @emailparçayı kaldırdığından emin olun, aksi takdirdeURL using bad/illegal format or missing URL .

Bu yardımcı olur umarım!


1
Bu benim için çalışan SADECE çözüm. kullanıcı adınız kritikti. Aslında şunu koymak gerekli değildi: your_git_password. Bu noktada, hala bir "parola" istenmesine rağmen, şimdi hesap şifresini kabul edecektir.
kbulgrien

1

Yapılandırmanıza bağlı olarak farklı kimlik doğrulama türleri vardır. Burda biraz var:

  1. git credential-osxkeychain.

    Kimlik bilgileriniz geçersizse, tarafından kaldırın:

      git credential-osxkeychain erase
    

    veya:

      printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
    

    Bu yüzden Git sizden tekrar anahtarlık izni istemez. Ardından tekrar yapılandırın.

    Bakınız: GitHub'daki OS X Anahtar Zincirinden kimlik bilgilerini güncelleme

  2. SSH RSA anahtarınız.

    Bunun için, tarafından, eklediğiniz ne çek SSH anahtarını karşılaştırmak gerekir ssh-add -L/ ' ssh-add -ldoğru kimliğini kullanıyorsanız.

  3. HTTPS kimlik doğrulamanız ( protokol httpsyerine kullanıyorsanız ssh).

    Kimlik bilgilerinizi sağlamak için ~/.netrc( %HOME%/_netrcWindows'ta) kullanın , örn.

      machine stash1.mycompany.com
      login myusername
      password mypassword
    

Daha fazla bilgi edinin: Stack Overflow'da GitHub ile senkronizasyon .





0

Microsoft Stack çözümü (Windows ve Azure DevOps)

Öncelikle .git/configadresin aşağıdaki gibi göründüğünden emin olmak için dosyayı açın :

protocol://something@url

Ör. Azure DevOps için .git / config:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

Sorun devam ederse Windows'u açın Kimlik Yöneticisi adında safebox tıklayın , Windows Kimlik ve tüm git ilişkin kimlik bilgilerini kaldırın.

Şimdi git'e bir sonraki girişinizde artık gitmeyecek.


0

SSH aracısı ayarladıysanız, ~/.gitconfigHTTPS yerine tüm GitHub depoları için SSH'yi kullanmaya zorlamak üzere bunu da ekleyebilirsiniz :

[url "ssh://git@github.com/"]
    insteadOf = git://github.com/
    insteadOf = https://github.com/

(Çoğunlukla kamu repo ile çalışıyorsanız, ayrıca kullanabilirsiniz pushInsteadOfziyade insteadOf, bir kamu repo okuma olarak kimlik doğrulaması olmadan yapılabilir).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.