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://git@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://git@github.com/eurydyce/MDANSE.git/'

Namun, mengatur kunci ssh saya ke github tampaknya ok. Memang, ketika saya melakukan ssh -T git@github.comsaya 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?


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: //git@github.com/eurydyce/MDANSE.git bukan url ssh, ini adalah https (yang membutuhkan nama akun GitHub Anda, alih-alih ' git').

Coba gunakan ssh://git@github.com:eurydyce/MDANSE.gitatau adilgit@github.com:eurydyce/MDANSE.git

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

The OP Pellegrini Eric menambahkan:

Itulah yang saya lakukan di ~/.gitconfigfile saya yang saat ini berisi entri berikut[remote "origin"] url=git@github.com: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.


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://your_user_name@github.com': 
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


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

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.


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://something@github.com/username/repository.git, maka Anda memiliki preset nama pengguna Git akan digunakan untuk otentikasi: something. Sejak Anda menggunakannya https://git@github.com, 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: git@github.com:username/repository. Untuk memperbarui URL Anda gunakan perintah ini:

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

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"] url=git@github.com: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.


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


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 git@github.com:username/repository


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


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 ...


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.


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.


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.


1

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


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 ..


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


-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.


-1

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


-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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.