GitHub kimlik doğrulaması https üzerinden başarısız oluyor, yanlış e-posta adresi döndürüyor


128

Kullanıcı adı ve parolayı çağıran komut satırından (https üzerinden, ssh üzerinden) GitHub ile bir itme veya başka bir eylem başlatmak yalnızca başarısız olmakla kalmaz, aynı zamanda başarısız olduğunda da geri döner

Username for 'https://github.com': username
Password for 'https://username@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/username/repository.git/'

Bir @github.comadresim yok Şifre ve kullanıcı adı doğru.

SSH'ye geçebileceğimi ve anahtarları kullanabileceğimi biliyorum, ancak bu kimlik doğrulamanın neden https üzerinden başarısız olduğunu yanıtlamıyor.


Belgeler git-scm.com/book/en/… git-config - Depo veya genel seçenekleri alın ve ayarlayın git-scm.com/docs/git-config
John Smith

Yanıtlar:


171

GitHub'ın desteği sorunun kökenini hemen belirledi: İki faktörlü yetkilendirme.

GitHub'ı https ile kabuk üzerinden kullanmak için bir OAuth jetonu oluşturun . Sayfada belirtildiği gibi, kullanıcı adımı ve şifre kimlik bilgilerimi Anahtar Zinciri'nden kaldırmam gerekiyordu, ancak osx-keychainyerinde olduğunda, jeton şifre olarak saklanıyor ve işler tam olarak iki faktörlü yetkilendirme olmadan https üzerinden olduğu gibi çalışıyor.


4
+1. Şifrelenmiş bir ağda PAT (Kişisel Erişim Belirteci) de kullanabilirsiniz: stackoverflow.com/a/18607931/6309
VonC

PAT ve OAuth arasındaki fark nedir?
lindhe

@lindhe OAuth belirteci bir simge türüdür, PAT bu durumda bir OAauth belirtecidir.
Kerry Jones

22

Bir yok @github.comadresini

Yapmanız gerekmez: @kullanıcı adı: şifre ve alan adı arasındaki ayırıcıdır.
Bu bir e-posta adresi değildir.

Tam bir GitHub https url'si şöyle olacaktır:

https://username:password@github.com/username/reponame.git

Parola olmadan (daha sonra komut satırında sorulur), bu şunları verirdi:

https://username@github.com/username/reponame.git

Ancak yine, username@github.combir e-posta adresi değil, kimlik bilgilerinin sadece ilk kısmı.

Sizin usernameve reponameharflerinin doğru olduğundan emin olun : büyük / küçük harfe duyarlıdır .

Söz konusu kimlik bilgilerini url'de açıkça belirtmek istemiyorsanız , kimlik bilgilerinizi bir .netrc.gpg(veya _netrc.gpgWindows'ta) depolayabilir ve şifreleyebileceğinizi unutmayın .
Bkz. " Kullanırken şifre yazmayı atlamanın bir yolu var mıhttps://github ".


Ayrıca her seferinde parolayı yazarak parolayı dışarıda bırakabilirsiniz. Bu durumda olur https://username@github.com/username/reponame.git.
Mark Hildreth

Oh, bu mantıklı. Teşekkür ederim. Büyük / küçük harf duyarlılığını biliyordum ve sağladığım kullanıcı adı ve parolanın doğru olduğundan eminim. (Onlar web sitesine işareti cezası çalışırlar.) Bir
ele

2
@ele evet, ancak şifreniz özel karakterler içeriyor ! * ' ( ) ; : @ & = + $ , / ? # [ ]mu (gibi )? "Yüzde olarak kodlanmış" olmaları gerekir ( en.wikipedia.org/wiki/Percent-encoding ).
VonC

Parola alfanümeriktir. Makinede bir sonraki adımda 'git remote -v'nin ne verdiğini göreceğim, ancak daha sonra GitHub desteğiyle iletişim kurmam gerekebilir gibi görünüyor.
Ele

@ele önce .netrc yaklaşımını deneyin (sadece test için şifrelemeyin bile). Bu işe yaramazsa, GitHub desteği gerçekten bir sonraki adımdır.
VonC

21
  • Credential Manager => Windows Manager'a gidin
  • Tfs ile ilgili her şeyi sil
  • Şimdi Genel bir kimlik bilgisi ekle'ye tıklayın ve aşağıdaki değerleri sağlayın

    (1) İnternet veya ağ adresi: git: https: //tfs.donamain name (2) kullanıcı adı: kullanıcı adınız (3) şifre: şifreniz

    bu onu düzeltmeli


vay. Yanlış yazarsanız yanlış şifreyi nasıl sakladığını seviyorum. O zaman manuel olarak güncellemeniz veya silmeniz gerekir
Kolob Canyon

10

Daha önce farklı bir kimlik bilgisi sakladıysanız, Windows'ta olabilir. Credential Manager'a gidin ve depolanan github kimlik bilgilerini silin


1
Parolayı Windows Kimlik Bilgileri Yöneticisinde doğrudan yeni parolayla düzenlemek de mümkündür.
Spenhouet


8

Github için 2 yönlü kimlik doğrulamayı etkinleştirdiğimde de aynı şey oldu. Çözmek için yaptığım şeyler:

  • Size kişisel erişim jetonu alın. Bu zaten mevcut değilse kontrol etmeli ve oluşturmalısınız. Bunun için bağlantı: https://github.com/settings/tokens
  • Yerelinize gidin ve klasörü silin ve github'dan dalı yeniden klonlayın.
  • Şimdi daha önce denediğiniz komutu deneyin, yani: git pull origin master
  • Kullanıcı adını girin ve Şifreyi girin, oluşturulan jetonu yapıştırın ve ayrıca bu jetonu bir yere kaydetmeyi unutmayın, böylece gerekirse yeniden kullanabilirsiniz.

Bunu yapmak sorununuzu çözecektir.


Güzel açıklama - bu
mac'ta başıma geliyordu

Daha önce oluşturulan belirteçlerde mevcut olmayan izinlere ihtiyacımız varsa belirteci oluşturmalıyız. Ayrıca, önceki jetonumuzu kaybetmişsek, bu yeni jetonu oluşturabilir ve orijinal git şifreniz yerine kimlik doğrulaması için şifre olarak kullanabiliriz.
Mohd Belal

5

Bunun başka birine de yardımcı olması durumunda, mac uygulamasında oturum açtım, komut satırı iyi çalışıyor, ancak daha sonra 2FA'yı açtığım için komutlarım hatayı döndürüyordu. Uygulamadan çıkış yapmak zorunda kaldım, sonra ele'nin buradaki cevabına göre kişisel erişim simgemi komutlarımda kullanabilirdim .

Umarım bu birine yardımcı olur!


-2

Windows'ta, Antivirüs veya Windows güvenlik duvarınız tarafından sessizce engellenebilirsiniz. Bu hizmetleri geçici olarak kapatın ve uzak noktadan itin / çekin.

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.