GitHub: nama pengguna atau kata sandi tidak valid

403

Saya memiliki proyek yang di-host di GitHub. Saya gagal ketika mencoba mendorong modifikasi saya pada master. Saya selalu mendapatkan pesan kesalahan berikut

Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://[email protected]/eurydyce/MDANSE.git/'

Namun, mengatur kunci ssh saya ke github tampaknya ok. Memang, ketika saya melakukan ssh -T [email protected]saya mendapatkan

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

Yang tampaknya menunjukkan bahwa semuanya OK dari sisi itu (eurydyce menjadi nama pengguna github saya). Saya benar-benar mengikuti instruksi yang diberikan pada github dan rekomendasi dari banyak diskusi stack tetapi tidak ada cara. Apakah Anda tahu apa yang saya lakukan salah?

Eurydice
sumber
Saya tidak yakin saya harus mengirim jawaban atau tidak (kemungkinan besar downvote), karena saya memecahkan pesan kesalahan ini dengan mengubah kata sandi di pengaturan github setelah mencoba banyak upaya dengan kata sandi "benar" (periksa dengan elemen periksa).
Buah

Jawaban:

274

https: //[email protected]/eurydyce/MDANSE.git bukan url ssh, ini adalah https (yang membutuhkan nama akun GitHub Anda, alih-alih ' git').

Coba gunakan ssh://[email protected]:eurydyce/MDANSE.gitatau adil[email protected]:eurydyce/MDANSE.git

git remote set-url origin [email protected]:eurydyce/MDANSE.git

The OP Pellegrini Eric menambahkan:

Itulah yang saya lakukan di ~/.gitconfigfile saya yang saat ini berisi entri berikut[remote "origin"] [email protected]:eurydyce/MDANSE.git

Ini tidak boleh dalam konfigurasi global Anda (yang ada di ~/).
Anda bisa memeriksa git config -ldi repo Anda: bahwa url harus dinyatakan dalam lokal config: <yourrepo>/.git/config.

Jadi pastikan Anda berada di jalur repo saat melakukan git remote set-urlperintah.


Seperti tercantum dalam Oliver 's jawaban , sebuah HTTPS URL tidak akan menggunakan username / password jika otentikasi dua faktor (2FA) diaktifkan.

Dalam hal ini, kata sandi harus berupa PAT (token akses pribadi) seperti yang terlihat di " Menggunakan token pada baris perintah ".

Itu hanya berlaku untuk HTTPS URL, SSH tidak terpengaruh oleh batasan ini.

VONC
sumber
oups! Anda benar, membuat perubahan di konfigurasi lokal saya membuat semuanya berfungsi. Terima kasih banyak.
Eurydice
81
Sama sekali tidak mengerti jawaban ini
Cloud
1
@Clo yakin, bagian mana yang kurang jelas, bagaimana saya bisa memperbaiki jawaban ini?
VonC
Saya memiliki tautan klon https, yang tidak berfungsi. Tapi saya diganti dengan git @ url dan mulai bekerja. Apa yang bisa menjadi alasan untuk ini? Saya menghapus beberapa entri github dari gantungan kunci mac saya juga. Mungkinkah itu terkait? Namun, saya menggunakannya melalui ssh dengan mengkonfigurasi kunci. Petunjuk apa pun akan membantu dalam hal ini.
cg
1
@byronaltice Jika ini SSH, itu berarti Anda memiliki ~/.ssh/configatau %USERPROFILE%\.ssh\configfile, dengan github.comentri di dalamnya.
VonC
1012

Setelah mengaktifkan Dua Faktor Otentikasi (2FA), Anda mungkin melihat sesuatu seperti ini ketika mencoba untuk menggunakan git clone, git fetch, git pullatau git push:

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

Mengapa ini terjadi?

Dari dokumentasi Bantuan GitHub :

Setelah 2FA diaktifkan, Anda harus memasukkan token akses pribadi alih-alih kode 2FA dan kata sandi GitHub Anda.

...

Sebagai contoh, ketika Anda mengakses repositori menggunakan Git pada baris perintah dengan menggunakan perintah seperti git clone, git fetch, git pullatau git pushdengan HTTPS URL, Anda harus memberikan nama pengguna GitHub Anda dan akses pribadi Anda tanda ketika diminta untuk username dan password. Prompt baris perintah tidak akan menentukan bahwa Anda harus memasukkan token akses pribadi Anda ketika meminta kata sandi Anda.

Bagaimana memperbaikinya

  1. Hasilkan Token Akses Pribadi . (Panduan terperinci tentang Membuat token akses pribadi untuk baris perintah .)
  2. Salin Token Akses Pribadi.
  3. Coba kembali perintah yang Anda coba dan gunakan Token Akses Pribadi di tempat kata sandi Anda.

Pertanyaan terkait: https://stackoverflow.com/a/21374369/101662

Oliver
sumber
14
Kudo dan upvotes; generasi token baru adalah apa yang saya butuhkan. Juga; "Salin kode" termasuk karakter tambahan (tidak valid) jadi saya harus memasukkan kunci acak .... 20 [?] digit secara manual.
th3byrdm4n
7
Ini adalah masalah saya, setelah menambahkan 2 faktor auth, yang saya duga, namun dokumentasi tentang ini kurang. Terima kasih atas jawabannya!
Pogrindis
11
@BeauSmith: Itu cara pengeditan yang lebih substantif daripada yang biasanya kami izinkan. Anda pada dasarnya sepenuhnya menulis ulang jawaban ini. Silakan posting itu sebagai jawaban Anda sendiri, sebagai gantinya. Lihat juga Apa yang Anda lakukan jika seseorang pada dasarnya menulis ulang seluruh jawaban Anda?
Martijn Pieters
8
Mari kita semua mengizinkan keputusan untuk mundur atau tidak diputuskan oleh @Oliver di sini - ada argumen yang benar-benar masuk akal
Flexo
10
Editor di sini ... Sepertinya orang-orang yang menandai jawaban ini sebagai benar (seperti saya) tiba di halaman ini untuk masalah yang sedikit berbeda dari yang dimaksudkan oleh penanya, saya mencoba menambahkan beberapa istilah "jus Google" dan membuat jawabannya lebih secara visual menarik sehingga orang lain yang mencari solusi ini dapat menemukannya. Mencoba membuat segalanya lebih baik untuk komunitas. 😀
Beau Smith
86

Langkah solusi:

  1. Panel kendali
  2. Manajer credential
  3. Klik Kredensial Jendela
  4. Di bagian Kredensial Generik, akan ada git url, perbarui nama pengguna dan kata sandi
  5. Mulai ulang Git Bash dan coba untuk klon
amoljdv06
sumber
4
Saya mengalami masalah ini dengan versi perusahaan github (jadi menggunakan nama pengguna / kata sandi lokal). Solusi ini memperbaikinya.
mkennedy
Di windowses baru, Anda dapat mencari "kredensial Windows" atau yang serupa dalam bahasa Anda. Ini akan memunculkan hasil dan Anda dapat mencoba solusi ini.
Charles Tempo
1
Solusi sempurna untuk github lokal, di mana perusahaan mewajibkan Anda untuk menggunakan https
avi.elkharrat
56

Jika seperti saya Anda baru saja memperbarui kata sandi Anda dan git pushmengalami masalah ini, maka ada perbaikan yang sangat mudah.

Hanya untuk pengguna Mac. Anda perlu menghapus entri akses Keychain OSX untuk GitHub. Anda dapat melakukannya melalui terminal dengan menjalankan perintah berikut.

Menghapus kredensial Anda melalui baris perintah

Melalui baris perintah, Anda dapat menggunakan penolong kredensial secara langsung untuk menghapus entri gantungan kunci.

Untuk melakukan ini, ketik perintah berikut:

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

# [Now Press Return]

Jika berhasil, tidak ada yang akan dicetak. Untuk mengujinya, coba dan tiru repositori dari GitHub atau jalankan tindakan Anda sebelumnya seperti dalam kasus saya git push. Jika Anda dimintai kata sandi, entri gantungan kunci telah dihapus.

Ahmad Awais
sumber
2
Untuk windows: git credential-wincred erase host = protokol github.com = https
Juan Uribe
Saya mengalami masalah ini pada repo BitBucket. Jawaban ini dengan host=bitbucket.orgbukannya GitHub memperbaikinya untuk saya.
Belanda
26

Ketika menggunakan https://URL untuk terhubung ke repositori jarak jauh Anda, maka Git tidak akan menggunakan SSH sebagai otentikasi tetapi sebaliknya akan mencoba otentikasi dasar melalui HTTPS. Biasanya, Anda hanya akan menggunakan URL tanpa nama pengguna, mishttps://github.com/username/repository.git , dan Git akan meminta Anda untuk memasukkan nama pengguna (nama pengguna GitHub Anda) dan kata sandi Anda.

Jika Anda menggunakan https://[email protected]/username/repository.git, maka Anda memiliki preset nama pengguna Git akan digunakan untuk otentikasi: something. Sejak Anda menggunakannya https://[email protected], Git akan mencoba masuk menggunakangit nama pengguna yang kata sandinya tentu saja tidak berfungsi. Jadi, Anda harus menggunakan nama pengguna Anda sebagai gantinya.

Alternatifnya adalah menggunakan SSH untuk otentikasi. Dengan begitu Anda tidak perlu mengetik kata sandi sepanjang waktu; dan karena tampaknya sudah berfungsi, itulah yang harus Anda gunakan.

Untuk melakukan itu, Anda perlu mengubah URL jarak jauh Anda, jadi Git tahu bahwa itu perlu terhubung melalui SSH. Formatnya adalah maka ini: [email protected]:username/repository. Untuk memperbarui URL Anda gunakan perintah ini:

git remote set-url origin [email protected]:username/repository
menyodok
sumber
ketika mencoba perintah Anda, saya mendapatkan pesan berikut warning: remote.origin.url has multiple values. Ini mungkin karena fakta bahwa saya sudah memiliki tag jarak jauh di file ~ / .gitconfig saya yang berisi nilai [remote "origin"] [email protected]:eurydyce/MDANSE.git.
Eurydice
18

coba saja dorong ke cabang Anda lagi. Ini akan menanyakan nama pengguna dan kata sandi Anda lagi, sehingga Anda dapat memasukkan kata sandi yang diubah. Sehingga kata sandi baru Anda akan disimpan lagi di cache.

Shiva Rajkumar
sumber
4
Tidak yakin mengapa ini mendapat downvote. Dalam kasus saya, kredensial saya telah diperbarui, dan yang kedua git pushmeminta pembaruan yang sesuai, seperti yang ditunjukkan oleh jawaban ini.
Digital Trauma
Tidak yakin, apa yang Anda maksudkan, itu tidak meminta kredensial baru mengeksekusi git push origin master...
Betlista
13

Dari pada git pull juga mencobagit pull origin master

Saya mengubah kata sandi, dan perintah pertama memberi kesalahan:

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

Setelah git pull origin master itu, ia meminta kata sandi dan sepertinya memperbarui sendiri

Paul
sumber
7

Tidak perlu bergantung pada Menghasilkan Token Akses Pribadi dan kemudian mencoba dan menggunakan Token Akses Pribadi di tempat kata sandi Anda.

Perbaikan cepat adalah mengatur URL jarak jauh Anda ke titik sshtidak https.

Melakukan hal ini git remote set-url origin [email protected]:username/repository

Divyanshu Rawat
sumber
5

Saya mendapatkan ini saat mengkloning aplikasi dari bitbucket:

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

Saya menyelesaikannya. Di sini Anda perlu membuat kata sandi untuk userid Anda

  1. Klik pada profil dan pengaturan Anda Klik pada profil dan pengaturan Anda

  2. Kemudian Buat kata sandi aplikasi pilih kata sandi yang akan dihasilkan, tempel kata sandi itu ke terminal Buat kata sandi aplikasi

prachit
sumber
4

Menonaktifkan otentikasi 2 faktor di github bekerja untuk saya.

Saya melihat bahwa ada jawaban yang dihapus yang mengatakan ini, dengan alasan penghapusan sebagai "tidak menjawab pertanyaan". Jika berhasil, maka saya pikir itu menjawab pertanyaan ...

GreenAsJade
sumber
Ini aneh. Sama terjadi dengan saya. Saya baru saja menonaktifkan otentikasi dua faktor dan sekarang berfungsi untuk saya. :)
abhijeetps
Ini bekerja untuk saya pada Juni 2020. Terima kasih!
Gcamara14
4

Aku melakukannya:

$git pull origin master

Kemudian ia meminta [Nama Pengguna] & [Kata Sandi] dan tampaknya berfungsi dengan baik sekarang.

Zahmi
sumber
Ini berhasil untuk saya. Saya telah menggunakan mengambil bukan menarik tetapi toh itu tidak masalah. Keren!
atereshkov
2

Jika Anda mendapatkan pesan kesalahan ini dalam situasi ini:

  • menggunakan github untuk entreprise
  • menggunakan credential.helper = wincred di git config
  • menggunakan kredensial windows Anda yang baru saja Anda ubah

Kemudian lihat jawaban ini: https://stackoverflow.com/a/39608906/521257

Windows menyimpan kredensial di manajer kredensial, menghapusnya atau memperbaruinya.

BiAiB
sumber
1

Anda mungkin mendapatkan kesalahan ini karena Anda telah memperbarui kata sandi Anda. Jadi pada Terminal terlebih dahulu pastikan Anda menghapus kredensial GitHub Anda dari gantungan kunci dan kemudian mendorong perubahan Anda ke repo Anda, terminal akan meminta nama pengguna dan kata sandi Anda.

Paras saini
sumber
1

Saya memiliki masalah yang sama. Dan saya menyelesaikannya dengan mengubah jalur cabang jarak jauh dari https://github.com/YourName/RepoNameke [email protected]:YourName/RepoName.gitdalam pengaturan repo dari aplikasi klien.

Olga Kliushkina
sumber
1

Saya terus-menerus mengalami masalah ini. Pastikan Anda mengatur git --config user.name "" dan bukan nama asli Anda, yang telah saya lakukan beberapa kali ..

Arthur Bowers
sumber
0

Karena Anda mungkin ingin mengaktifkan 2FA untuk akun Anda, Anda dapat mengatur kunci ssh dan dengan cara itu Anda tidak perlu mengetikkan kredensial Github Anda setiap kali Anda ingin mendorong pekerjaan ke Github.

Anda dapat menemukan semua langkah pengaturan ssh dalam dokumentasi . Pertama, pastikan saat ini Anda tidak memiliki kunci ssh (id_rsa.pub, dll.)$ ls -al ~/.ssh

Dwyer
sumber
-1
  1. Panel kendali
  2. Manajer credential
  3. Cari opsi kredensial web dan kredensial windows
  4. di salah satu yang Anda akan menemukan kredensial github memperbaikinya dengan kredensial yang benar
  5. buka instance baru git bash Anda harus dapat melakukan perintah git Anda.

Ini bekerja untuk saya, saya bisa menarik dan mendorong repo jarak jauh saya.

Ajay Deepak
sumber
-1

Saya hanya menonaktifkan otentikasi Dua faktor dan coba lagi. Ini bekerja untuk saya.

Muhammad Awais
sumber
-3

Solusi ini bekerja untuk saya:

  1. buka Control Panel
  2. Pergi ke Manajer Kredensial
  3. Klik Kredensial Jendela
  4. Di bagian Kredensial Generik, akan ada git url, perbarui nama pengguna dan kata sandi
  5. Mulai ulang Git Bash dan coba untuk klon
Sandesh Jayaprakash
sumber
1
Jawaban ini menduplikasi jawaban yang sudah ada yang tidak berguna. Ketika Anda memiliki reputasi yang cukup (15, saya percaya) Anda dapat memilih jawaban yang menurut Anda berguna. Voting akan menjadi jawaban yang benar daripada menambahkan jawaban duplikat ini.
AdrianHHH