Git push sonuçları “Kimlik Doğrulama Başarısız Oldu”


708

Bir süre için Github kullanıyorum ve ben ince olmuştur git add, git commitve git pushşu ana kadar herhangi bir sorun ile. Aniden şu hata mesajı alıyorum:

fatal: Kimlik Doğrulaması Başarısız Oldu

Terminalde bir depoyu klonladım, bir dosya üzerinde çalıştım ve daha sonra git adddosyayı kayıt günlüğüne ekledim ve yaptığımda git commitiyi çalıştı. Son olarak, git pushkullanıcı adı ve şifre ister. Bunları doğru bir şekilde koydum ve bunu her yaptığımda aynı hatayı söylüyor.

Herkes bu sorunun nedenini ve nasıl düzeltebilirim hakkında bir fikri var mı?

İçeriği .git/config:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

github'daki kullanıcı adınız nedir ve .git / config içeriği nelerdir?
mnagel

soruya ekleyin, yorumlar uzun metinle başa
çıkmıyor

Evet özür dilerim, yoruma alışkanlıktan başladım ve değiştirdim.
zkirkland

URL'niz doğru görünmüyor. Bence başlamalı https://, değil http://.
John Szakmeister

Https olarak değiştirildi ... işe yaramadı.
zkirkland

Yanıtlar:


1206

Github hesabınızda iki faktörlü kimlik doğrulamayı etkinleştirdiyseniz, hesaplarınızın şifresini kullanarak HTTPS ile zorlayamazsınız. Bunun yerine kişisel bir erişim belirteci oluşturmanız gerekir. Bu, Github hesabınızın uygulama ayarlarında yapılabilir. Bu belirteci şifreniz olarak kullanmak, HTTPS üzerinden uzak deponuza aktarmanıza izin vermelidir. Kullanıcı adınızı her zamanki gibi kullanın.

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

Https olarak ayarlanırsa, deponuzun kaynağını da güncellemeniz gerekebilir:

git remote -v 
git remote remove origin 
git remote add origin git@github.com:user/repo.git  

5
Aslında. +1. PAT'yi burada sunuyorum stackoverflow.com/a/19223896/6309 ve orada süreci detaylandırıyorum: stackoverflow.com/a/18607931/6309
VonC

3
2FA'yı etkinleştirdikten sonra normal Git işlemlerinin çalışması için rsa anahtarlarımı yeni oluşturmam gerekiyordu.
R11G

5
Teşekkür ederim! Sadece bu hatayla karşılaştık ve bu sadece işaret etmek için yardımcı oldu. Kişisel erişim jetonunuzu oluşturduktan sonra kopyayı kopyaladığınızda, kullanıcı adınızı ve şifrenizi isteyecektir. Erişim
Kodunu Şifreye

88
git remote add origin https://username:access-token@github.com/username/repo.gitkişisel erişim kodunuzu saklamak için de yapabilirsiniz .
mailmindlin

2
Benim için tek yapmam GitHub hesabımda yerel makinemden SSH kimlik doğrulamasını etkinleştirmek ve sonra ssh git uzak adresine geçmekti; help.github.com/articles/changing-a-remote-s-url
user5359531

607

Kayıtlı kimlik bilgilerini Düzenlemek veya Kaldırmak için aşağıdaki adımları deneyin:

  1. Başlat'a tıklayın
  2. Credential Manager yazın (Windows 10'da bu "Başlat-> Ayarlar" altındadır. Sonra "Credential Manager" ı arayın)
  3. Windows Credentials ManagerKısayolu görün ve uygulamayı açmak için çift tıklayın.
  4. Uygulama açıldıktan sonra Windows Credentialssekmeyi tıklayın.
  5. Kaldırmak / güncellemek istediğiniz kimlik bilgilerini bulun, bunlar "git:" ile başlayacak ve "ada:" ile başlayabilir.
  6. Kimlik bilgisi girişine tıklayın, girişin ayrıntılar görünümünü açacaktır.
  7. Gerektiği gibi Düzenle veya Kaldır'ı tıklayın ve onaylayın.
  8. Yıkayın, durulayın, gerektiği kadar tekrarlayın.

resim açıklamasını buraya girin


2
Benim durumumda "Windows Kimlik Bilgileri" içinde değil, "Genel Kimlik Bilgileri" üzerindedir. Hile yapmak kimlik bilgilerini kaldırın.
Toni Gamez

8
Yukarıdaki pencereyi (windows + R) -> "kontrol / isim Microsoft.CredentialManager"
Sufiyan Ansari

Kimlik bilgileri orada olabilir, ancak önünde 'git:' bulunmaz. Bu işe yaramayacak. 'Git:' ile başlaması gerekiyor
Marques

1
İşverenim Windows kimlik doğrulamasını Git Hub olarak ayarladı, bu yüzden Windows kimlik bilgilerimi her değiştirdiğimde kaynak kontrolü için güncellemem gerekti. Cevabınız işe yaradı.
shary.sharath

1
Harika bir cevap. Hesap kimlik bilgilerimizin her birinin kuruluşumuz için kimliğinin doğrulandığı dahili bir BitBucket deposu bulunduruyoruz. Son zamanlarda tüm depolarım kod değişikliklerini itmek için kullanılamaz hale geldi. Vaka bazında kimlik bilgilerini her durum için değiştirebilmiş olsam da, bunu her proje için yapmak istemedim. @ Pradeep'in yaklaşımı, sadece bir şifre değişikliğinden daha fazlası olan temel nedeni çözmeme izin verdi. Kuruluşumuz yakın zamanda dahili etki alanının adını değiştirdi, bu nedenle kimlik bilgilerini merkezi olarak düzenleyerek tüm projelerimi düzeltebildim.
Michael M

79

Bu benim için çalıştı ve aynı zamanda kimlik bilgilerimi de hatırlıyor:

  1. Gitbash çalıştır

  2. Repo dizinine gelin

  3. Çalıştırmak git config --global credential.helper wincred


18
Bunun ne olduğunu öğrenmem bir süre aldı - Windows Denetim Masası'ndaki Kimlik Bilgisi Yöneticisi'ni kullanıyor. Kullanmayı durdurmak için: git config –global credential.helper unset Kaynak ve bu yanıtta daha fazla ayrıntı .
Ian W

7
Bunu mu demek istediniz git config --global --unset credential.helper? Git Bash'te benim için bu işe yaradı.
Ellen Spertus

1
Bu komutla dikkatli olun, kimlik yardımcınızın gerçek yolunu, basitçe "wincred" ile değiştirecektir;
amarax

2
İstediğim bu değil, unset için doğru yolu bulmak için bu komutu koştum git config --global --unset credential.helper. Sonuçta, doğru ayarımı geri yükledim git config credential.helper store.
Omar

Bu bana yardımcı oluyor! Teşekkürler!
Jefsama

70

Eğer sen deneyebilirsiniz hesap Git için yakın zamanda şifreyi değiştirmiş olabilir git pushile -useçeneği

git push -u origin branch_name_that_you_want_to_push

Yukarıdaki komutu uyguladıktan sonra güncellenmiş şifrenizi sağlamak için şifre isteyecektir

Umarım sana yardımcı olabilir


httpssadece ortamımın olması gereken bu iş
BMW

1
Kesinlikle çoğu cevaptan çok daha kolay. (Ve bir kimlik doğrulama hatası almak için şifreleri değiştirmek en yaygın neden olmalıdır ;-))
Michel

mevcut bir klonda yaşıyorsanız - o zaman sadece birgit push -u
Ajay Chebbi

64

İlk olarak, uygun URL'yi kullandığınızdan emin olabilirsiniz:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Daha sonra, daha önce çalışıyorsa ve sizden kullanıcı adı istemiyorsa, bunun nedeni $HOME/.netrc, burada açıklandığı gibi kimlik bilgilerinizi (oturum açma / parola) bir dosyada saklamış olmanız gerekir . Bu ayarları iki kez kontrol edebilir ve varsa proxy'nizin değişmediğinden emin olabilirsiniz.

Bu yine de işe yaramazsa, bir ssh url'sine geçebilirsiniz:

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

Ancak bu, ssh genel anahtarınızı Hesap ayarlarınızda yayınladığınız anlamına gelir .


9
HTTPS'den SSH'ye geçmek benim için sorunu çözdü.
leymannx

3
GH hesabım için 2 faktörlü kimlik doğrulamayı etkinleştirmiştim ve uzak URL'yi HTTPS'den SSH'ye geçirmek benim için "kimlik doğrulama başarısız oldu" sorununu çözdü. Mantıklı. Teşekkürler!
Walter Roman

56

Git service hesabı (Git) oturum açma adınızı veya parolanızı değiştirirseniz olur. Windows Kimlik Bilgileri Yöneticisi'nden de değiştirmeniz gerekir . Windows Arama menüsünde "Kimlik Bilgisi Yöneticisi" yazın.

Windows Kimlik Bilgileri Yöneticisi-> Windows Kimlik Bilgileri ve Genel Kimlik Bilgileri altında git parolanızı düzenleyin.


4
Bu, GitLab ile çalışırken beni kurtardı (başka hiçbir şey yardımcı olmadığında). Teşekkürler!
John Humphreys - w00te

2
Bu windows kimlik yöneticisi hiç duymamıştım .... Teşekkürler!
Sam

1
Git beni uzak depoya yeni dosyalar gönderirken kullanıcı kimliği ve parola istediğinde yanlış kimlik bilgileri verdim. Ben tekrar itme komutu koştu git kimlik bilgileri istemedi ama bunun yerine sadece kimlik doğrulama başarısız hata atıyordu. Bu cevabı okuduktan sonra git'in kimlik bilgisi yöneticisinde saklanan kimlik bilgilerini kullandığını ve gitmenin her zaman uzak depoya girdiğimizde şifre sormamasının nedeni olması gerektiğini fark ettim. Kimlik bilgisi yöneticisindeki git parolasını sildim, sonra git tekrar kullanıcı kimliği ve parola istedi.
Jchenna

42

Temel olarak kimlik bilgilerimin süresi dolmuştu ve bu sorunun üstündeydim.

Aşağıdaki 2 komut bana yardımcı oldu:

git config --global --unset credential.helper

git config credential.helper store

Bir dahaki sefere itmeye çalıştığınızda kimlik bilgilerinizi isteyecektir.

Kullanıcı adı ve parolaların güvenli ve güvenli bir şekilde saklanmasına ilişkin daha fazla bilgi için aşağıdaki yönergeleri izleyin:

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

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


Github'daki şifremi değiştirdikten ve yerel olarak kimlik bilgilerimi değiştirmedikten sonra bu benim için çalıştı.
Scott

33

Doğru şifre ve kullanıcı adını girdiğinizde kimlik doğrulama hatası sorunu bulduysanız, git sorunu. Git'i makinenize yüklerken bu sorunu çözmek için git kimlik bilgisi yöneticisini etkinleştir seçeneğinin işaretini kaldırınresim açıklamasını buraya girin


1
Bu sorunumu çözdü
user1929819

benimki de sabit. Milyonlarca kez teşekkürler!
Brian Edwards

Bu tür bir çözüm bulamıyorum.
Git'i

Benim sorunum da düzeltildi (git kuruldu, sadece bu işaretin kaldırılmasıyla yeniden yüklendi: ve sorun değil!)
Manatlan

1
"Yerel Windows Güvenli Kanal kütüphanesini kullan" ı da kontrol etmek zorunda kaldım. Varsayılan olarak işaretlenmez.
doptrois

25

GitHub'ın bir nedenden dolayı URL'nin www alt etki alanına sahip OLMAYI beklediğini düşünüyorum. Kullandığımda (örneğin)

git remote set-url origin https://www.github.com/name/repo.git

aşağıdaki mesajları verir:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

Ancak, eğer

git remote set-url origin https://github.com/name/repo.git

mükemmel çalışıyor. Benim için çok mantıklı değil ... ama sanırım GitHub depoları için www'i uzak URL'ye koymamayı unutmayın.

Ayrıca GitHub veri havuzu web sayfasında sağlanan klon URL'lerinin www içermediğine dikkat edin.


4
"Www" koymak değil "github.com" çalışır. Bu önemli olduğundan, Github "www" kullanarak klonlayamamanız için sitelerini düzeltmelidir.
John Nagle

1
Teşekkür ederim :) Benim url .git eksikti ve bu yorum bana bir göz atın ve anladım.

19

Merhaba, aynı hatayı alıyordum, bu sayfada belirtilen tüm çözümleri denedim, ancak işe yaramadı. Sonunda, çözümü buldum, bu yüzden göndermeyi düşündüm. Herhangi bir yerde yanılıyorsam lütfen beni düzelt. Bazen sistem şifreniz herhangi bir zamanda değiştiyse bu tür hatalar gelir. Eski şifreden doğrulamaya çalışacaktır. Bu nedenle, şu adımları izleyin:

  1. Kontrol paneline git
  2. Kullanıcı hesapları'nı tıklayın
  3. Kimlik Bilgileri yöneticisi altında
  4. Windows kimlik bilgilerini yönetme sayfasına gidin
  5. Genel kimlik bilgilerine git
  6. Git sunucu sekmesini genişlet
  7. kasadan kaldır'a tıklayın

    • Ayrıca düzenle'yi tıklayabilir ve doğrudan burada saklanan şifrenizi değiştirebilirsiniz.

10

Ben "$ git fetch fatal: Kimlik doğrulama 'http: // ...." için windows şifremin süresi doldu ve değiştirildikten sonra koştum. Birden çok getirme, Windows kimlik bilgileri yöneticisi ile git yeniden başlatma ve hatta yeniden yükleme yardımcı olmadı.

Şaşırtıcı bir şekilde burada bir yerde doğru cevap ama cevaplarda değil (ve bazıları gerçekten garip!). Kontrol paneli -> Kimlik Bilgisi Yöneticisi / Windows Kimlik Bilgileri'ne gitmeniz ve git: http: // yourrepoaddress için şifrenizi güncellemeniz gerekir


9

Bu hatayı almak için ne yaptığımdan gerçekten emin değilim, ama şunu yapıyorum:

git remote set-url origin https://...

benim için çalışmadı. Ancak:

git remote set-url origin git@bitbucket.org:user/repo

bir şekilde çalıştı.


3
Https'leri gelen ssh geçti
James Wierzba

Benim için de işe yarıyor. Bu sihirli değil, çünkü ben https erişimi (kullanıcı / pass + MFA) için alınmamış ssh erişimi (bir ortak anahtar yapılandırılmış) için yapılandırmayı sakladım.
Daniel Dubovski

8

Ben de aynı problemi yaşadım. URL'yi şu şekilde ayarladım:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Ayrıca yapılandırma dosyasından bu girdiyi kaldırıldı: askpass = /bin/echo. Sonra "git push" bana kullanıcı adı ve şifre istedi ve bu sefer işe yaradı.


Ben yapılandırma dosyasında bu girişi kaldırmak gerek yoktu: askpass = /bin/echo.
Darius Miliauskas

6

Benim durumumda, yakın zamanda windows şifremi değiştirdim ve git ile ilgili eylemler (çekme, itme, getirme vb.) İçin SSH anahtarı yapılandırdım, "ölümcül: Kimlik doğrulama başarısız oldu" hatasıyla karşılaştıktan sonra, Windows'ta şifremi güncelledim git: ... ile başlayan tüm öğeler için kimlik bilgisi yöneticisi (Denetim Masası \ Kullanıcı Hesapları \ Kimlik Bilgisi Yöneticisi) ve tekrar denedi, bu sefer çalıştı!



3

Github hesabınızda iki faktörlü kimlik doğrulamayı etkinleştirdiyseniz, GitHub hesabınızda oturum açın ve yeni erişim belirteci oluşturmak için https://github.com/settings/tokens/new adresine gidin , bu belirteci kopyalayın ve yapıştırın terminalde kimlik doğrulaması için bir parola.


2

Pencerelerde ve etki alanı kullanıcılarının depo kullanıcısı (TFS) olarak çalıştığı bir Windows sunucusuna aktarmaya çalışıyorsanız http:\\tfs, IE ile TFS URL'sine (yani ) girmeyi deneyin . alan adı hesabı kimlik bilgilerinizi girin ve sayfanın görünmesine izin verin.

DİKKAT sadece İNTERNET EXPLORER kullanın! diğer tarayıcılar sistem kimlik bilgilerinizi değiştirmez.

Şimdi git bash'a gidin ve uzak kullanıcınızı depo için aşağıdaki gibi değiştirin:

git config user.name "domainName\userName"

Ve bitti, şimdi itebilirsiniz!


1

Benim için, Github.com'da şifreyi değiştirdiğimi unuttum ve kabuk kimlik doğrulaması için anahtarlık asla bu yeni şifreye güncellenmedi. Git anahtarlığımdan her şeyi silmek ve sonra git isteğini yeniden çalıştırmak sorunu çözmeme yardımcı oldu ve yeni şifremi tekrar istedi.


1

Burada zil çalmak için, sorunu çözdüğüm şey sadece ilk istemden iptal edildi, ssh olanı bitbucket hesabımla açıldı, şifreyi oraya girdim ve her şey beklendiği gibi çalıştı.


1

Aynı sorun pencerelerde de vardı. Çoğu zaman normalde birden fazla git hesabı kullanmayla ilgili sorunla karşılaşıyorum. Pencerelerde iseniz, lütfen terminali yönetici olarak açın ve komutları tekrar çalıştırmayı deneyin. Yönetici erişim haklarına sahip olduğunuzdan emin olun.


1

Git'e bağlı Bitbucket'e ekliyordum ve bu, önemli hataya neden olduğu için depolanan anahtarları kaldırmak zorunda kaldım.

Çözmek için komut istemini açtım ve koştum

 rundll32.exe keymgr.dll, KRShowKeyMgr

Oturum açmaktan sorumlu anahtarı kaldırdım ve dosyaları repoya bir daha ittiğimde, kimlik bilgileri istendi ve doğru olanları girdim, bu da başarılı bir itme ile sonuçlandı.


0

Ben de hatayla karşılaştım (bu yüzden buraya indim), ama hiçbir öneri benim için işe yaramadı. Azure'a yerel Git'i dağıtmaya çalıştığım ilk zamanımdı. Bu hatayı aldığımda, birkaç denemeden sonra kimlik bilgilerimi sıfırladım (Azure'daki bağlantıyı tıklatarak). Sorun şu anda bana kullanıcı adımı almış olduğunu söyler, bu yüzden ben de kullanıcı adımı başka bir ile değiştirdim. Sonunda, yerel sürücümdeki .git klasörünü el ile sildim ve sorunsuz bir şekilde yeniden konuşlandırdım.


0

Sorun Bildirimi: "git ölümcül kimlik doğrulaması başarısız oldu". Bitbucket kullanıyorum.

Çözüm: Kullanıcıyı bitbucket'in erişim yönetimini kullanarak sildim ve sonra aynı kullanıcıyı ekledim. .Gitconfig dosyası basit

[user]
    name = BlaBla
    email = blabla@gmail.com

[push]
    default = simple

0

sorun devam ederse doğru kimlik bilgileriyle

androidstudio 2.1 beta kullanıyorsanız, sonra onun hatası, beta 2'ye yükseltme (3 mb güncelleme dosyası), bu benim için çalıştı


0

Zorlamak için WRITE iznine sahip olduğunuzdan emin olun.

read ***write*** admin 

0

Ssh anahtarınızın geçerli ssh oturumunuza eklendiğinden emin olun.

  1. cat ~/.ssh/id_rsa.pubSSH ve GPG anahtarları altındaki çıkışını GitHub ayarlarınıza kopyalayın .

  2. Geçerli ssh oturumunuzu ile güncelleyin ssh-add ~/.ssh/id_rsa.pub

OpenSsh yüklü Windows Powershell kullanıyorum.


0

Android studio canary build 3.1+, Android studio git aracını kullanıyorsanız, aşağıdakileri kullanabilirsiniz:

  • Android Studio'yu tıklayın
  • Tercihler'i tıklayın ...
  • VersionControl'de GO -> Github
  • Burada Kimlik Doğrulama türünü Parola olarak değiştirin
  • Bu adım, oturum açma adı ve parola girmenizi gerektirir. Giriş olarak github kullanıcı adını ve şifre olarak github şifresini girin.
  • Test Düğmesine tıklayın.

Bağlantı başarılıysa, bitirdiğinizden ve android studio github UI istemcisini kullanabilirsiniz.


0

Ssh kullanıyorsanız ve https ile klonlanmışsanız, bu çalışmaz. Ssh ile klonlayın ve sonra itme ve çekme beklendiği gibi çalışmalıdır!


0

Bu teğetsel olarak yardımcı olması durumunda, bu soru artık git ile http kimlik doğrulama sorunları için en iyi hit olduğu için: Windows Kimlik Bilgisi Yöneticisi şifremi doğru bir şekilde saklamıştı ve Git LFS'yi kullandığımdan beri normal ssh yerine bir http URL'si yapılandırdım: / / .

Benim sorunum, kurumsal şifre politikamın bir hesap şifre değişikliğini zorunlu kılmasıydı, ancak saklanan kimlik bilgilerimi hiç güncellemedim (her zaman bir ssh anahtarı kullandığım için).

Wincred GUI'de doğrudan şifreyi güncellemek işe yaradı: sadece bir git:https://<your-url>giriş arayın .


0

Bu, Gitlab'dan giriş yapmadan önce "İki Faktörlü Kimlik Doğrulama" yı zorladıktan sonra bize oldu. İd_rsa.pub içindeki metni Gitlab'a yapıştırmamız ve daha sonra terminali kullanarak VS kodundaki havuzu yeniden eklememiz gerekiyordu.

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.