Git Clone dari GitHub melalui https dengan otentikasi dua faktor

129

Saya baru-baru ini mulai menggunakan otentikasi dua faktor di GitHub, dan saya sekarang tidak dapat menggunakan git over https pada repo pribadi dengan cara yang biasa:

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

Jika saya menonaktifkan otentikasi dua faktor, saya dapat menggunakannya seperti sebelumnya:

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.

Saya tahu saya dapat menggunakan SSH dan semuanya berfungsi, tetapi adakah cara agar saya dapat menyimpan autentikasi dua faktor sambil tetap dapat menggunakan GitHub melalui HTTPS, misalnya dengan mengirimkan token autentikasi dengan permintaan saya?

peter-b
sumber

Jawaban:

155

Cari tahu cara memperbaikinya di sini:

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

Bagaimana cara kerjanya untuk baris perintah Git?

Jika Anda menggunakan SSH untuk otentikasi Git, tenang saja: Anda tidak perlu melakukan apa pun. Jika Anda menggunakan HTTPS Git, alih-alih memasukkan kata sandi, masukkan token akses pribadi. Ini dapat dibuat dengan membuka halaman token akses pribadi Anda .

Nitsew
sumber
2
Anda dapat menambahkan token ke file .netrc seperti yang saya temukan di inti berikut , untuk membuat otentikasi otomatis juga.
Martin Woolstenhulme
1
Tapi saya menggunakan ssh, ketika ditarik dari github, itu juga mengisyaratkan saya untuk memasukkan kata sandi dan nama pengguna, mengapa ini? Terima kasih atas balasan Anda!
starkshang
3
masih tidak berfungsi untuk saya setelah memasukkan token akses di mac setelah sudo git clone .... sistem meminta nama pengguna dan kata sandi di bidang kata sandi Saya memasukkan token tetapi tidak berfungsi untuk saya. mendapatkan kesalahan yang sama
ojus kulkarni
40
Gunakan token Anda sebagai nama pengguna Anda dan berikan kata sandi kosong.
Kotie Smit
Perhatikan ruang ekstra yang tertinggal saat menyalin token dari situs github secara manual (misalnya jika tidak menggunakan tombol salin github). Butuh beberapa saat untuk memahami mengapa ini tidak berhasil untuk saya.
gmargari
34

Sesuai jawaban @ Nitsew , Buat token akses pribadi Anda dan gunakan token Anda sebagai nama pengguna dan masukkan dengan kata sandi kosong.

Nanti Anda tidak memerlukan kredensial apa pun untuk mengakses semua repo pribadi Anda.

Sunil Targe
sumber
Di mana Anda akan merekomendasikan untuk menyimpan token akses di server jauh?
bdoubleu
2

Untuk semua orang yang berjuang, yang berhasil bagi saya adalah membuat token akses pribadi dan kemudian menggunakannya sebagai nama pengguna DAN kata sandi (pada prompt yang terbuka).

Zvone
sumber
1

Jika repo Anda mengaktifkan 2FA. Sangat disarankan untuk menggunakan aplikasi yang disediakan oleh github.com Ini tautannya: https://desktop.github.com/

Setelah Anda mengunduhnya dan menginstalnya. Ikuti withard, aplikasi akan meminta Anda untuk memberikan kata sandi satu kali untuk login. Setelah Anda mengisi kata sandi satu kali, Anda dapat melihat repo / proyek Anda sekarang.

Richard
sumber
hanya membantu jika Anda menggunakan jendela
Ian Turton