GitHub: ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง


402

ฉันมีโครงการที่โฮสต์บน GitHub ฉันล้มเหลวเมื่อพยายามผลักดันการปรับเปลี่ยนของฉันกับต้นแบบ ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เสมอ

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

อย่างไรก็ตามการตั้งค่าคีย์ ssh ของฉันเป็น github ดูเหมือนว่าใช้ได้ แน่นอนเมื่อฉันทำssh -T git@github.comฉันได้รับ

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

ซึ่งดูเหมือนจะบ่งบอกว่าทุกอย่างก็โอเคจากด้านนั้น (eurydyce เป็นชื่อผู้ใช้ github ของฉัน) ฉันปฏิบัติตามคำแนะนำที่ให้ไว้ใน github อย่างเคร่งครัดและคำแนะนำของการอภิปรายสแต็กจำนวนมาก แต่ไม่มีทาง คุณมีความคิดเกี่ยวกับสิ่งที่ฉันอาจทำผิดหรือไม่?


ฉันไม่แน่ใจว่าฉันควรโพสต์คำตอบหรือไม่ (โอกาสสูงที่จะลดลง) เนื่องจากฉันแก้ไขข้อผิดพลาดนี้โดยเปลี่ยนรหัสผ่านในการตั้งค่า Github หลังจากลองหลายครั้งด้วยรหัสผ่าน "ถูกต้อง" (ตรวจสอบโดยตรวจสอบองค์ประกอบ)
ผลไม้

คำตอบ:


274

https: //git@github.com/eurydyce/MDANSE.gitไม่ใช่ ssh url มันเป็น https หนึ่ง (ซึ่งจะต้องใช้ชื่อบัญชี GitHub ของคุณแทน ' git')

ลองใช้ssh://git@github.com:eurydyce/MDANSE.gitหรือเพียงแค่git@github.com:eurydyce/MDANSE.git

git remote set-url origin git@github.com:eurydyce/MDANSE.git

OP Pellegrini เอริคกล่าวเสริมว่า

นั่นคือสิ่งที่ฉันทำใน~/.gitconfigไฟล์ที่มีรายการต่อไปนี้[remote "origin"] url=git@github.com:eurydyce/MDANSE.git

สิ่งนี้ไม่ควรอยู่ในการกำหนดค่าส่วนกลางของคุณ (หนึ่งใน~/)
คุณสามารถตรวจสอบgit config -lใน repo ของคุณ: ว่า URL ควรจะประกาศในท้องถิ่น<yourrepo>/.git/configการตั้งค่า:

ดังนั้นให้แน่ใจว่าคุณอยู่ในเส้นทาง repo เมื่อทำgit remote set-urlคำสั่ง


ดังที่ระบุไว้ในคำตอบของOliver URL HTTPS จะไม่ใช้ชื่อผู้ใช้ / รหัสผ่านหากเปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัย (2FA)

ในกรณีดังกล่าวรหัสผ่านควรเป็นPAT (โทเค็นการเข้าถึงส่วนบุคคล)ดังที่เห็นใน " การใช้โทเค็นบนบรรทัดคำสั่ง "

ใช้กับ HTTPS URLS เท่านั้น SSH ไม่ได้รับผลกระทบจากข้อ จำกัด นี้


อุ๊ย! คุณพูดถูกการทำการปรับแต่งในเครื่องของฉันทำให้ทุกอย่างทำงานได้ ขอบคุณมาก.
Eurydice

79
ไม่เข้าใจคำตอบนี้เลย
Cloud

1
@ แน่ใจว่าส่วนใดที่ขาดความชัดเจนฉันจะปรับปรุงคำตอบนี้ได้อย่างไร
VonC

ฉันมีลิงค์โคลน https ซึ่งใช้งานไม่ได้ แต่ฉันแทนที่ด้วย git @ url แล้วมันก็เริ่มทำงาน อะไรคือสาเหตุของสิ่งนี้ ฉันลบรายการ GitHub บางส่วนจากพวงกุญแจ Mac ของฉันด้วย นั่นอาจเกี่ยวข้องกันไหม อย่างไรก็ตามฉันใช้มันผ่าน ssh โดยการกำหนดค่าปุ่มต่างๆ พอยน์เตอร์ใด ๆ จะมีประโยชน์ในเรื่องนี้
cg

1
@byronaltice หากนี่คือ SSH นั่นหมายความว่าคุณมีไฟล์~/.ssh/configหรือ%USERPROFILE%\.ssh\configมีgithub.comรายการอยู่ในนั้น
VonC

1011

หลังจากเปิดใช้ถูก Factor Authentication สอง (2FA), คุณอาจจะเห็นอะไรเช่นนี้เมื่อพยายามที่จะใช้งานgit clone, git fetch, git pullหรือgit push:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://your_user_name@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

ทำไมสิ่งนี้จึงเกิดขึ้น

จากเอกสารช่วยเหลือ GitHub :

หลังจากเปิดใช้งาน 2FA แล้วคุณจะต้องป้อนโทเค็นการเข้าถึงส่วนบุคคลแทนรหัส 2FA และรหัสผ่าน GitHub ของคุณ

...

ตัวอย่างเช่นเมื่อคุณเข้าถึงพื้นที่เก็บข้อมูลโดยใช้ Git ในบรรทัดคำสั่งโดยใช้คำสั่งชอบgit clone, git fetch, git pullหรือgit pushด้วย HTTPS URL ที่คุณต้องมีชื่อผู้ใช้ของคุณ GitHub และการเข้าถึงส่วนบุคคลของคุณโทเค็นเมื่อได้รับแจ้งชื่อผู้ใช้และรหัสผ่าน พรอมต์บรรทัดคำสั่งจะไม่ระบุว่าคุณควรป้อนโทเค็นการเข้าถึงส่วนบุคคลของคุณเมื่อมันถามรหัสผ่านของคุณ

วิธีแก้ไข

  1. สร้างส่วนบุคคลเข้าถึง Token คำแนะนำโดยละเอียดเกี่ยวกับการสร้างโทเค็นการเข้าถึงส่วนบุคคลสำหรับบรรทัดคำสั่ง )
  2. คัดลอกโทเค็นการเข้าถึงส่วนบุคคล
  3. ลองคำสั่งที่คุณพยายามใช้โทเค็นการเข้าถึงส่วนบุคคลแทนรหัสผ่านของคุณ

คำถามที่เกี่ยวข้อง: https://stackoverflow.com/a/21374369/101662


14
Kudo และ upvotes; รุ่นโทเค็นใหม่คือสิ่งที่ฉันต้องการ นอกจากนี้ยัง; "รหัสคัดลอก" รวมอักขระเพิ่มเติม (ไม่ถูกต้อง) ดังนั้นฉันจึงต้องป้อนรหัสสุ่มหลักของฉัน .... 20 [?]
th3byrdm4n

7
นี่คือปัญหาของฉันหลังจากเพิ่ม 2 ปัจจัยการตรวจสอบซึ่งฉันสงสัยว่า แต่เอกสารเกี่ยวกับเรื่องนี้ก็ขาด ขอบคุณสำหรับคำตอบ!
Pogrindis

11
@BeauSmith: นั่นเป็นวิธีการแก้ไขที่สำคัญกว่าที่เราอนุญาตตามปกติ คุณต้องเขียนคำตอบนี้ใหม่ทั้งหมด กรุณาโพสต์ที่เป็นของตัวเองคำตอบที่แยกจากกันของคุณแทน ดูที่คุณจะทำอย่างไรถ้ามีคนเขียนคำตอบทั้งหมดของคุณใหม่?
Martijn Pieters

8
ให้ทุกคนได้โปรดอนุญาตให้มีการตัดสินใจย้อนกลับหรือไม่ตัดสินใจโดย @Oliver ที่นี่ - มีข้อโต้แย้งที่สมบูรณ์แบบไม่ว่าทางใดทางหนึ่ง
Flexo

10
เครื่องมือแก้ไขที่นี่ ... ดูเหมือนว่าผู้คนที่ทำเครื่องหมายคำตอบนี้ถูกต้อง (เช่นตัวฉันเอง) มาถึงหน้านี้เพื่อรับปัญหาที่แตกต่างจากผู้ถามเล็กน้อยฉันพยายามเพิ่มคำว่า "google juice" และทำให้คำตอบมองเห็นได้มากขึ้น การดึงดูดให้คนอื่น ๆ ที่กำลังมองหาวิธีนี้สามารถค้นหาได้ พยายามทำให้สิ่งต่าง ๆ ดีขึ้นสำหรับชุมชน 😀
Beau Smith

86

ขั้นตอนการแก้ไข:

  1. แผงควบคุม
  2. ผู้จัดการข้อมูลรับรอง
  3. คลิกข้อมูลรับรองหน้าต่าง
  4. ในส่วนข้อมูลรับรองทั่วไปจะมี URL คอมไพล์อัปเดตชื่อผู้ใช้และรหัสผ่าน
  5. รีสตาร์ท Git Bash แล้วลองโคลน

4
ฉันกำลังประสบปัญหานี้กับ github รุ่น บริษัท (ดังนั้นให้ใช้ชื่อผู้ใช้ / รหัสผ่านท้องถิ่น) วิธีนี้แก้ไขได้
mkennedy

ในหน้าต่างใหม่คุณสามารถค้นหา "ข้อมูลรับรอง Windows" หรือคล้ายกันในภาษาของคุณ มันจะปรากฏขึ้นผลลัพธ์และคุณสามารถลองวิธีนี้
Charles Tempo

1
โซลูชั่นที่สมบูรณ์แบบสำหรับสถานที่บน GitHub ที่ บริษัท จำเป็นต้องให้คุณใช้ https
avi.elkharrat

56

หากเหมือนฉันคุณเพิ่งอัปเดตรหัสผ่านของคุณและวิ่งไปหาgit pushปัญหานี้แล้วมีการแก้ไขที่ง่ายมาก

สำหรับผู้ใช้ Mac เท่านั้น คุณต้องลบรายการเข้าถึง OSX Keychain ของคุณสำหรับ GitHub คุณสามารถทำได้ผ่านเทอร์มินัลโดยเรียกใช้คำสั่งต่อไปนี้

การลบข้อมูลรับรองของคุณผ่านบรรทัดคำสั่ง

ผ่านบรรทัดคำสั่งคุณสามารถใช้ตัวช่วยข้อมูลประจำตัวโดยตรงเพื่อลบรายการพวงกุญแจ

หากต้องการทำสิ่งนี้ให้พิมพ์คำสั่งต่อไปนี้:

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

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


2
สำหรับ windows: git หนังสือรับรอง - ลบการลบโฮสต์ = โปรโตคอล github.com = https
Juan Uribe

ฉันพบปัญหานี้ใน repo BitBucket คำตอบนี้host=bitbucket.orgแทนที่จะใช้ GitHub แก้ไขให้ฉัน
gutch

26

เมื่อใช้https://URL เพื่อเชื่อมต่อกับที่เก็บข้อมูลระยะไกลของคุณ Git จะไม่ใช้ SSH เป็นการรับรองความถูกต้อง แต่จะลองใช้การรับรองความถูกต้องเบื้องต้นผ่าน HTTPS แทน โดยปกติแล้วคุณจะใช้ URL โดยไม่มีชื่อผู้ใช้เช่นhttps://github.com/username/repository.gitจากนั้น Git จะแจ้งให้คุณป้อนทั้งชื่อผู้ใช้ (ชื่อผู้ใช้ GitHub) และรหัสผ่านของคุณ

ถ้าคุณใช้https://something@github.com/username/repository.gitแล้วคุณมีที่ตั้งไว้ชื่อผู้ใช้ Git somethingจะใช้สำหรับการตรวจสอบ: เมื่อคุณใช้งานhttps://git@github.comGit จะพยายามเข้าสู่ระบบโดยใช้gitชื่อผู้ใช้ที่รหัสผ่านของคุณใช้ไม่ได้ ดังนั้นคุณจะต้องใช้ชื่อผู้ใช้ของคุณแทน

ทางเลือกอื่นคือใช้ SSH สำหรับการตรวจสอบความถูกต้อง ด้วยวิธีนี้คุณจะหลีกเลี่ยงการพิมพ์รหัสผ่านของคุณตลอดเวลา และเนื่องจากมันใช้งานได้แล้วนั่นคือสิ่งที่คุณควรใช้

ในการดำเนินการดังกล่าวคุณต้องเปลี่ยน URL ระยะไกลของคุณดังนั้น Git จึงรู้ว่าจำเป็นต้องเชื่อมต่อผ่าน SSH git@github.com:username/repositoryรูปแบบที่เป็นแล้วนี้: หากต้องการอัปเดต URL ของคุณให้ใช้คำสั่งนี้:

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

warning: remote.origin.url has multiple valuesเมื่อพยายามที่คำสั่งของคุณฉันได้รับข้อความดังต่อไปนี้ อาจเป็นเพราะฉันมีแท็กระยะไกลในไฟล์ ~ / .gitconfig ซึ่งมีค่า[remote "origin"] url=git@github.com:eurydyce/MDANSE.gitอยู่แล้ว
Eurydice

18

เพียงแค่พยายามที่จะผลักดันให้สาขาของคุณอีกครั้ง นี่จะถามชื่อผู้ใช้และรหัสผ่านของคุณอีกครั้งเพื่อให้คุณสามารถป้อนรหัสผ่านที่เปลี่ยนแปลงได้ เพื่อให้รหัสผ่านใหม่ของคุณจะถูกเก็บไว้ในแคชอีกครั้ง


4
ไม่แน่ใจว่าทำไมสิ่งนี้ถึงลงคะแนน ในกรณีของฉันข้อมูลประจำตัวของฉันได้รับการปรับปรุงและครั้งที่สองgit pushได้รับแจ้งสำหรับการปรับปรุงที่เหมาะสมตามที่คำตอบนี้บ่งชี้
Digital Trauma

ไม่แน่ใจสิ่งที่คุณหมายถึงจะไม่ขอข้อมูลประจำตัวใหม่ดำเนินgit push origin master...
Betlista

13

แทนที่จะgit pullลองทำดูgit pull origin master

ฉันเปลี่ยนรหัสผ่านและคำสั่งแรกให้ข้อผิดพลาด:

$ git pull
remote: Invalid username or password.
fatal: Authentication failed for ...

หลังจากนั้นgit pull origin masterก็ขอรหัสผ่านและดูเหมือนจะอัปเดตตัวเอง


7

ไม่จำเป็นต้องพึ่งพาการสร้างโทเค็นการเข้าถึงส่วนบุคคลจากนั้นลองและใช้โทเค็นการเข้าถึงส่วนบุคคลแทนรหัสผ่านของคุณ

การแก้ไขด่วนคือการตั้งค่า URL ระยะไกลของคุณให้ชี้sshไม่httpsไม่

ทำเช่นนี้ git remote set-url origin git@github.com:username/repository


5

ฉันได้รับสิ่งนี้ขณะที่คัดลอกแอพจาก bitbucket:

Cloning into 'YourAppName'...
Password for 'https://youruser id': 
remote: Invalid username or password

ฉันแก้ไขมันแล้ว ที่นี่คุณต้องสร้างรหัสผ่านสำหรับหมายเลขผู้ใช้ของคุณ

  1. คลิกที่โปรไฟล์และการตั้งค่าของคุณ คลิกที่โปรไฟล์และการตั้งค่าของคุณ

  2. จากนั้นสร้างรหัสผ่านสำหรับแอปเลือกรหัสผ่านชื่อของคุณที่จะสร้างวางรหัสผ่านนั้นไปที่เทอร์มินัล สร้างรหัสผ่านสำหรับแอป


4

การปิดใช้งานการตรวจสอบสิทธิ์แบบ 2 ระดับที่ github ทำให้ฉัน

ฉันเห็นว่ามีคำตอบที่ถูกลบซึ่งระบุว่าสิ่งนี้พร้อมด้วยเหตุผลการลบเนื่องจาก "ไม่ตอบคำถาม" ถ้ามันใช้งานได้ฉันคิดว่ามันตอบคำถาม ...


นี่มันแปลก เกิดขึ้นกับฉันเหมือนกัน ฉันเพิ่งปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยและตอนนี้ใช้ได้สำหรับฉัน :)
abhijeetps

สิ่งนี้ทำงานให้ฉันตั้งแต่เดือนมิถุนายน 2020 ขอบคุณ!
Gcamara14

4

ฉันทำ:

$git pull origin master

จากนั้นมันจะถาม [Username] & [รหัสผ่าน] และดูเหมือนว่ามันจะใช้ได้ดี


สิ่งนี้ใช้ได้สำหรับฉัน ฉันใช้การดึงข้อมูลแทนการดึง แต่ก็ไม่สำคัญ เย็น!
atereshkov

2

ในกรณีที่คุณได้รับข้อความแสดงข้อผิดพลาดนี้ในสถานการณ์นี้:

  • ใช้github สำหรับการเข้าร่วม
  • using credential.helper = wincredในการกำหนดค่า git
  • ใช้ข้อมูลประจำตัว windowsของคุณที่คุณเปลี่ยนเมื่อเร็ว ๆ นี้

จากนั้นดูคำตอบนี้: https://stackoverflow.com/a/39608906/521257

Windows เก็บข้อมูลประจำตัวในตัวจัดการข้อมูลประจำตัวล้างหรือปรับปรุง


1

คุณอาจได้รับข้อผิดพลาดนี้เนื่องจากคุณได้อัปเดตรหัสผ่าน ดังนั้นในเทอร์มินัลอันดับแรกตรวจสอบให้แน่ใจว่าคุณล้างข้อมูลประจำตัว GitHub ของคุณจากพวงกุญแจแล้วผลักดันการเปลี่ยนแปลงไปยัง repo ของคุณเทอร์มินัลจะถามชื่อผู้ใช้และรหัสผ่านของคุณ


1

ฉันมีปัญหาเดียวกัน และฉันแก้ไขมันโดยการเปลี่ยนเส้นทางของสาขาระยะไกลจากhttps://github.com/YourName/RepoNameเป็นgit@github.com:YourName/RepoName.gitในการตั้งค่าของ repo ของแอปไคลเอนต์


1

ฉันพบปัญหานี้อย่างต่อเนื่อง ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่า git --config user.name "" ไม่ใช่ชื่อจริงของคุณซึ่งฉันได้ทำไปสองสามครั้ง ..


0

เนื่องจากคุณอาจต้องการเปิดใช้งาน 2FA สำหรับบัญชีของคุณคุณสามารถตั้งค่าคีย์ ssh และวิธีที่คุณไม่จำเป็นต้องพิมพ์หนังสือรับรอง Github ของคุณทุกครั้งที่คุณต้องการทำงานให้ Github

คุณจะพบทุกขั้นตอนการติดตั้ง SSH ในเอกสาร ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณไม่มีคีย์ ssh (id_rsa.pub ฯลฯ ) ด้วย$ ls -al ~/.ssh


-1
  1. แผงควบคุม
  2. ผู้จัดการข้อมูลรับรอง
  3. ค้นหาตัวเลือก webcredentials และข้อมูลประจำตัว windows
  4. ในหนึ่งคุณจะพบข้อมูลประจำตัว GitHub แก้ไขด้วยข้อมูลประจำตัวที่ถูกต้อง
  5. เปิดอินสแตนซ์ใหม่ของ gash bash คุณควรจะสามารถใช้คำสั่ง git ของคุณได้

สิ่งนี้ใช้งานได้สำหรับฉันฉันสามารถดึงและผลักดัน repo ระยะไกลของฉัน


-1

ฉันเพิ่งปิดใช้งานการรับรองความถูกต้องแบบสองปัจจัยแล้วลองอีกครั้ง มันใช้งานได้สำหรับฉัน


-3

วิธีนี้ใช้ได้ผลสำหรับฉัน:

  1. เปิดแผงควบคุม
  2. ไปที่ตัวจัดการข้อมูลรับรอง
  3. คลิกข้อมูลรับรองหน้าต่าง
  4. ในส่วนข้อมูลรับรองทั่วไปจะมี URL คอมไพล์อัปเดตชื่อผู้ใช้และรหัสผ่าน
  5. รีสตาร์ท Git Bash แล้วลองโคลน

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