Git Clone จาก GitHub ผ่าน https ด้วยการรับรองความถูกต้องด้วยสองปัจจัย


129

ฉันเพิ่งเริ่มใช้การรับรองความถูกต้องด้วยสองปัจจัยบน GitHub และตอนนี้ฉันไม่สามารถใช้ git ผ่าน https บน repos ส่วนตัวได้ตามปกติ:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/[...]/MyPrivateRepo/'

หากฉันปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยฉันสามารถใช้งานได้เหมือนเดิม:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Counting objects: 147, done.
remote: Total 147 (delta 0), reused 0 (delta 0), pack-reused 147
Receiving objects: 100% (147/147), 22.70 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.

ฉันรู้ว่าฉันสามารถใช้ SSH และทุกอย่างใช้งานได้ แต่มีวิธีใดบ้างที่ฉันสามารถรักษาการรับรองความถูกต้องด้วยสองปัจจัยในขณะที่ยังสามารถใช้ GitHub ผ่าน HTTPS ได้เช่นโดยการส่งโทเค็นรับรองความถูกต้องพร้อมคำขอของฉัน

คำตอบ:


155

ดูวิธีแก้ไขได้ที่นี่:

https://github.com/blog/1614-two-factor-authentication#how-does-it-work-for-command-line-git

มันทำงานอย่างไรสำหรับ Git บรรทัดคำสั่ง

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


2
คุณสามารถเพิ่มโทเค็นลงในไฟล์. netrc ตามที่ฉันพบในส่วนสำคัญต่อไปนี้เพื่อทำการตรวจสอบความถูกต้องโดยอัตโนมัติด้วย
Martin Woolstenhulme

1
แต่ฉันใช้ ssh เมื่อดึงจาก github มันยังบอกใบ้ให้ฉันป้อนรหัสผ่านและชื่อผู้ใช้ทำไมถึงเป็นเช่นนี้ขอบคุณสำหรับการตอบกลับของคุณ!
starkshang

3
ยังคงใช้งานไม่ได้สำหรับฉันหลังจากป้อนโทเค็นการเข้าถึงใน mac หลังจาก sudo git clone .... ระบบกำลังขอชื่อผู้ใช้และรหัสผ่านในช่องรหัสผ่านฉันกำลังป้อนโทเค็น แต่ไม่ได้ผลสำหรับฉัน ได้รับข้อผิดพลาดเดียวกัน
ojus kulkarni

40
ใช้โทเค็นของคุณเป็นชื่อผู้ใช้ของคุณและให้รหัสผ่านว่างเปล่า
Kotie Smit

คำนึงถึงช่องว่างที่ต่อท้ายเมื่อคัดลอกโทเค็นจากไซต์ github ด้วยตนเอง (เช่นถ้าไม่ใช้ปุ่มคัดลอก github) ใช้เวลาสักพักเพื่อทำความเข้าใจว่าทำไมสิ่งนี้ถึงไม่ได้ผลสำหรับฉัน
gmargari

34

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

ในภายหลังคุณไม่จำเป็นต้องมีข้อมูลรับรองใด ๆ ในการเข้าถึง repo ส่วนตัวของคุณทั้งหมด


คุณจะแนะนำให้จัดเก็บโทเค็นการเข้าถึงบนเซิร์ฟเวอร์ระยะไกลไว้ที่ใด
bdoubleu

2

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


1

หาก repo ของคุณเปิดใช้งาน 2FA ขอแนะนำให้ใช้แอพที่จัดทำโดย github.com นี่คือลิงค์: https://desktop.github.com/

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


ช่วยได้เฉพาะในกรณีที่คุณใช้ windows
Ian Turton

0

อันดับแรก: รับโทเค็นการเข้าถึงส่วนบุคคล https://github.com/settings/tokens
2nd: ใส่บัญชีและโทเค็น ตัวอย่างอยู่ที่นี่:

$ git push
Username for 'https://github.com':            # Put your GitHub account name
Password for 'https://{USERNAME}@github.com': # Put your Personal access token

ลิงก์เกี่ยวกับวิธีสร้างโทเค็นการเข้าถึงส่วนบุคคล: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line

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