Saya baru saja mengaktifkan 2FA (Saya tidak dapat memikirkan perubahan lain yang saya buat) dan git meminta nama pengguna dan kata sandi saya. Saya menyediakan keduanya, tetapi mereka "salah". Saya mencoba banyak solusi di sini: Git push memerlukan nama pengguna dan kata sandi tetapi tidak berhasil. Secara khusus, saat beralih dari https ke ssh, kunci ssh memberi
Izin ditolak (publickey). fatal: Tidak dapat membaca dari repositori jarak jauh.
$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
Username for 'https://github.com': **********
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/mlbileschi/scala.git/'
Ada tips?
git
github
two-factor-authentication
Max Bileschi
sumber
sumber
Jawaban:
Anda perlu membuat token akses. Anda dapat membuatnya dengan membuka halaman pengaturan Anda .
Gunakan token akses ini sebagai kata sandi Anda di baris perintah.
sumber
git pull
. Mungkin masalah lokal, tetapi ini dapat membantu seseorang.The requested URL returned error: 403
ketika saya menggunakan token untuk kata sandi, untuk mendorong httpsSolusi ujung ke ujung membutuhkan 3 langkah.
Kudos to Gergo Erdosi. Jawabannya sebagian besar benar, hanya saja Github mengubah halaman pengaturan itu. Mulai akhir 2016, Anda perlu membuat token akses dari halaman Token akses pribadi Anda .
Gunakan token akses ini sebagai kata sandi Anda di baris perintah.
Anda dapat mempertahankan nama pengguna Anda dengan memasukkannya ke dalam url jarak jauh proyek Anda. Salah satu cara untuk melakukannya adalah dengan mengedit baris Anda
.git/config
untuk mengubahurl
ke dalam format berikut:url = https://[email protected]/owner/repo.git
Anda dapat mempertahankan kata sandi Anda dengan menjalankan ini untuk satu kali saja:
$ git config credential.helper store
dan kemudian sandi git Anda di masa mendatang akan disimpan dalam ~ / .git-credentials, dalam teks biasa, menggunakan format
https://user:[email protected]
.Menyimpan kata sandi dalam teks biasa biasanya akan dianggap sebagai risiko keamanan. Tetapi dalam kasus 2FA ini, kredensial BUKAN kata sandi Anda yang sebenarnya, itu adalah string yang dibuat secara acak. Jadi seaman menggunakan
kunci pribadi ssh, kunci pribadi ssh tanpafrasa sandi. PERHATIAN: perlu diingat bahwa, jika Anda kebetulan juga menggunakan akun git lain tanpa 2FA di mesin ini, kata sandi asli itu juga akan disimpan dalam teks biasa.PS: Sebagai alternatif, Anda dapat memilih untuk menggunakan login berbasis ssh, menggunakan kunci pribadi ssh yang dilindungi frase sandi, yang akan lebih aman dan kurang nyaman, tetapi itu berada di luar cakupan jawaban ini.
sumber
...the credential is NOT your real password, it is a randomly generated string. So it is as secure as using ssh private key.
- itu tidak benar sama sekali . Kunci SSH dapat dengan mudah dilindungi dengan frasa sandi di luar kotak. Biasa~./git-credentials
- sama sekali tidak diamankan!Saya punya masalah serupa. Saya harus mengubah url yang digunakan dalam perintah git untuk memasukkan nama pengguna saya.
Kemudian ketika diminta untuk PW gunakan token akses yang Anda buat dari mengikuti petunjuk di jawaban Gergo Erdosi.
sumber
git remote set-url --push origin
dengan nilai yang sama, makagit push origin master
masih gagal.git-bash
berfungsi dengan baikDi linux, Anda dapat mengautentikasi identitas GitHub Anda menggunakan kunci SSH.
1) Menghasilkan kunci SSH baru ( sumber )
Buka terminal.
Tempel teks di bawah ini, gantikan alamat email GitHub Anda.
Ini membuat kunci ssh baru, menggunakan email yang disediakan sebagai label.
2) Menautkan kunci ke akun GitHub Anda
Buka terminal dan salin kunci publik yang dihasilkan
Harus menampilkan sesuatu sebagai
Arahkan ke https://github.com/settings/keys dan klik
New SSH Key
, beri Judul dan salin-tempel kunci publik.3) Ubah git origin dari
https://
menjadissh
Buka terminal,
cd
ke lokasi dan tipe repositori Andasumber
https
terkadang berguna, misalnya ketika tetap upstream selamahttps
percabangan Anda berakhirssh
, sehingga Anda menghindari mendorong ke upstream secara tidak sengaja, karenahttps
akan meminta sandi dan mengingatkan Anda bahwa Anda menargetkan repoIni berhasil untuk saya:
Buka [your-git-repo] /. Git / config
Di bawah
[remote "origin"]
UbahURL
kunci dari protokol http ke git.Contoh
Jika nilainya
url
adalah https://github.com/ .git ubah ke[email protected]:<repo-url>.git
sumber
Jika Anda sudah menggunakan kunci ssh, setelah mengaktifkan 2FA itu akan memaksa Anda untuk membaca / menulis jarak jauh dengan SSH. Anda tidak benar-benar perlu menambahkan token pribadi, tetapi tetap menggunakan pasangan kunci SSH yang ada.
Ubah saja url jarak jauh Anda dari HTTPS ke SSH:
sumber
Ini berfungsi untuk saya setelah mengaktifkan 2FA di Github:
Buat Token Akses Pribadi: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line .
CATATAN: Ingatlah untuk memilih izin yang benar untuk token tersebut.
Jalankan:
git clone https://github.com/username/repo.git
Nama Pengguna:
your_username
Kata Sandi:
your_token
Bacaan lebih lanjut: https://help.github.com/en/github/using-git/which-remote-url-should-i-use
sumber
Saya menghadapi masalah ini pada repo yang ada ketika saya mengaktifkan 2FA (otentikasi dua faktor) untuk salah satu repo pribadi saya. Saya dapat menyelesaikannya dengan mengikuti langkah-langkah di bawah ini di terminal ubuntu 19.0 saya: -
Setelah kunci ditambahkan, buka terminal Anda, dan perbarui url asal
git remote set-url origin [email protected]:<USERNAME>/<BRANCH-NAME>
Itu saja. Semoga membantu
sumber