การตรวจสอบสิทธิ์ GitHub ล้มเหลวผ่าน https ส่งคืนที่อยู่อีเมลผิด


128

การเริ่มต้นการพุชหรือการดำเนินการอื่น ๆ กับ GitHub จากบรรทัดคำสั่ง (ผ่าน https ไม่ใช่ ssh) ที่เรียกชื่อผู้ใช้และรหัสผ่านไม่เพียง แต่ล้มเหลว แต่เมื่อทำเช่นนั้นจะส่งกลับ

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/'

ฉันไม่มีที่@github.comอยู่ รหัสผ่านและชื่อผู้ใช้ถูกต้อง

ฉันรู้ว่าฉันสามารถเปลี่ยนเป็น SSH และใช้คีย์ได้ แต่นั่นไม่ได้ตอบโจทย์ว่าทำไมการตรวจสอบสิทธิ์จึงล้มเหลวบน https


เอกสารgit-scm.com/book/en/… git-config - รับและตั้งค่าที่เก็บหรือตัวเลือกส่วนกลางgit-scm.com/docs/git-config
John Smith

คำตอบ:


171

การสนับสนุนของ GitHub กำหนดรากของปัญหาทันที: การอนุญาตแบบสองปัจจัย

หากต้องการใช้ GitHub มากกว่าเปลือกด้วย https, สร้างโทเค็น OAuth ตามที่หน้าบันทึกไว้ฉันต้องลบข้อมูลรับรองชื่อผู้ใช้และรหัสผ่านของฉันออกจาก Keychain แต่osx-keychainในสถานที่โทเค็นจะถูกจัดเก็บเป็นรหัสผ่านและสิ่งต่าง ๆ ทำงานได้เหมือนกับที่ทำบน https โดยไม่ได้รับอนุญาตสองปัจจัย


4
+1 คุณยังสามารถใช้ PAT (โทเค็นการเข้าถึงส่วนบุคคล) ใน netrc ที่เข้ารหัสได้: stackoverflow.com/a/18607931/6309
VonC

PAT และ OAuth ต่างกันอย่างไร
ลินด์

โทเค็น @lindhe OAuth เป็นโทเค็นประเภทหนึ่งส่วน PAT คือโทเค็น OAauth ในกรณีนี้
Kerry Jones

22

ฉันไม่มีที่@github.comอยู่

คุณไม่จำเป็นต้อง: @เป็นตัวคั่นระหว่างชื่อผู้ใช้: รหัสผ่านและโดเมน
ไม่ใช่ที่อยู่อีเมล

URL https ของ GitHub แบบเต็มจะเป็น:

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

หากไม่มีรหัสผ่าน (ซึ่งจะถูกถามในบรรทัดคำสั่ง) ที่จะให้:

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

แต่อีกครั้งusername@github.comไม่ใช่ที่อยู่อีเมลเป็นเพียงส่วนแรกของข้อมูลรับรอง

ตรวจสอบให้แน่ใจกรณีที่คุณusernameและreponameถูกต้อง: มันเป็นกรณีที่สำคัญ

โปรดทราบว่าคุณสามารถจัดเก็บและเข้ารหัสข้อมูลประจำตัวของคุณใน.netrc.gpg(หรือ_netrc.gpgบน Windows) หากคุณไม่ต้องการใส่ข้อมูลรับรองดังกล่าวให้ชัดเจนใน url
โปรดดู " มีวิธีข้ามการพิมพ์รหัสผ่านเมื่อใช้https://github " หรือไม่


คุณยังสามารถปล่อยรหัสผ่านออกโดยพิมพ์รหัสผ่านทุกครั้ง https://username@github.com/username/reponame.gitในกรณีที่ว่ามันจะเป็น
Mark Hildreth

โอ้นั่นเข้าท่า ขอบคุณ. ฉันรู้เกี่ยวกับกรณีและปัญหาและฉันมั่นใจว่าชื่อผู้ใช้และรหัสผ่านที่ฉันระบุนั้นถูกต้อง (พวกเขาทำงานได้ดีในการลงชื่อเข้าใช้เว็บไซต์) a
ele

2
@ele ใช่ แต่รหัสผ่านของคุณมีอักขระพิเศษ (เช่น! * ' ( ) ; : @ & = + $ , / ? # [ ]) หรือไม่? พวกเขาจะต้อง "เข้ารหัสเปอร์เซ็นต์" ( en.wikipedia.org/wiki/Percent-encoding )
VonC

รหัสผ่านเป็นตัวเลขและตัวอักษร ฉันจะดูว่า 'git remote -v' ให้อะไรเมื่อฉันอยู่ที่เครื่องถัดไป แต่ดูเหมือนว่าฉันอาจต้องติดต่อฝ่ายสนับสนุนของ GitHub ต่อไป
ele

@ele ลองใช้วิธี. netrc ก่อน (ไม่ได้เข้ารหัสเพียงเพื่อทดสอบ) หากไม่ได้ผลการสนับสนุน GitHub เป็นขั้นตอนต่อไป
VonC

21
  • ไปที่ Credential Manager => Windows Manager
  • ลบทุกอย่างที่เกี่ยวข้องกับ tfs
  • ตอนนี้คลิกที่เพิ่มข้อมูลรับรองทั่วไปและระบุค่าต่อไปนี้

    (1) ที่อยู่อินเทอร์เน็ตหรือเครือข่าย: git: https: //tfs.donamainชื่อ (2) ชื่อผู้ใช้: ชื่อผู้ใช้ของคุณ (3) รหัสผ่าน: รหัสผ่านของคุณ

    สิ่งนี้ควรแก้ไขได้


ว้าว. ฉันชอบวิธีการจัดเก็บรหัสผ่านที่ไม่ถูกต้องหากคุณพิมพ์ผิด จากนั้นคุณต้องไปอัปเดตด้วยตนเองหรือลบออก
Kolob Canyon

10

อาจเกิดขึ้นใน Windows หากคุณเก็บข้อมูลรับรองอื่นไว้ก่อน ไปที่ Credential Manager และลบข้อมูลรับรอง github ที่เก็บไว้


1
นอกจากนี้ยังสามารถแก้ไขรหัสผ่านโดยตรงใน Windows Credential Manager เป็นรหัสผ่านใหม่ได้
Spenhouet


8

สิ่งเดียวกันเกิดขึ้นกับฉันเมื่อฉันเปิดใช้งานการรับรองความถูกต้อง 2 ทางสำหรับ github สิ่งที่ฉันแก้ไข:

  • ให้คุณเข้าถึงโทเค็นส่วนบุคคล สิ่งนี้คุณต้องตรวจสอบและสร้างหากไม่มีอยู่แล้ว ลิงก์สำหรับสิ่งนี้: https://github.com/settings/tokens
  • ไปที่โฟลเดอร์ในเครื่องของคุณและลบโฟลเดอร์และทำการโคลนสาขาใหม่จาก github
  • ตอนนี้ลองใช้คำสั่งที่คุณพยายามก่อนหน้านี้เช่น git pull origin master
  • ป้อนชื่อผู้ใช้และในรหัสผ่านวางโทเค็นที่สร้างขึ้นและอย่าลืมบันทึกโทเค็นนั้นไว้ที่ใดที่หนึ่งเพื่อให้คุณสามารถใช้ซ้ำได้หากจำเป็น

การทำเช่นนี้จะช่วยแก้ปัญหาของคุณได้


คำบรรยายภาพที่ดี - สิ่งนี้เกิดขึ้นกับฉันบน mac => ต้องสร้าง PAT ใหม่
SliverNinja - MSFT

เราต้องสร้างโทเค็นหากเราต้องการสิทธิ์ที่ไม่มีอยู่ในโทเค็นที่สร้างก่อนหน้านี้ นอกจากนี้หากเราสูญเสียโทเค็นก่อนหน้านี้เราสามารถสร้างโทเค็นใหม่นี้และใช้เป็นรหัสผ่านเพื่อตรวจสอบสิทธิ์แทนรหัสผ่าน git เดิมของเรา
Mohd Belal

5

ในกรณีนี้จะช่วยคนอื่นได้เช่นกันฉันลงชื่อเข้าใช้แอพ mac บรรทัดคำสั่งทำงานได้ดี แต่เนื่องจากฉันเปิด 2FA คำสั่งของฉันจึงส่งคืนข้อผิดพลาด ฉันต้องออกจากระบบแอพจากนั้นฉันสามารถใช้โทเค็นการเข้าถึงส่วนบุคคลของฉันในคำสั่งของฉันตามคำตอบของเอเลที่นี่ที่นี่

หวังว่าจะช่วยใครสักคน!


-2

ใน Windows คุณอาจถูกปิดกั้นโดยไม่ใช้เสียงโดย Antivirus หรือไฟร์วอลล์ Windows ของคุณ ปิดบริการเหล่านั้นชั่วคราวและดัน / ดึงจากแหล่งกำเนิดระยะไกล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.