Repositori GitHub yang dikloning meminta kata sandi, sementara yang semula dibuat tidak

9

Saya baru saja kehilangan banyak repositori dari disk saya, jadi saya sudah mengkloningnya dari GitHub. Ini sekarang meminta nama pengguna dan kata sandi setiap kali saya mendorong sesuatu ke GitHub. Yang belum dihapus jangan lakukan itu.
Satu-satunya solusi yang saya baca untuk menghilangkan prompt nama pengguna / kata sandi adalah membuat kunci ssh. Masalahnya adalah saya sudah memiliki kunci, kalau tidak saya tidak bisa mendorong tanpa diminta dalam repo itu, yang saya tidak klon.

Saya telah mencari git configdua repositori saya, yang bisa saya dorong tanpa kata sandi dan yang saya kloning. Satu-satunya perbedaan adalah branch.master.remotedan branch.master.mergepengaturan, yang saya setel, membuat git confighal yang sama. Tapi promptnya masih ada.

Saya bahkan tidak yakin bahwa menghasilkan kunci ssh baru akan berfungsi. Apa saja pilihan saya?

usr
sumber
Silakan lihat help.github.com/ssh-issues dan berikan rincian lebih lanjut. Apa yang terjadi ketika Anda mencoba SSH?

Jawaban:

21

Tebakanku:

Repositori lama Anda menggunakan remote SSH ( [email protected]:atau ssh://[email protected]/awalan), yang menggunakan otentikasi kunci publik. (Faktanya, server Github SSH tidak pernah meminta kata sandi.)

Repositori baru Anda menggunakan remote HTTP ( ), yang hanya mendukung otentikasi HTTP Basic berbasis kata sandi dan tidak menggunakan kunci SSH Anda.https://username@github.com/

Ubah URL jarak jauh Anda untuk menggunakan SSH lagi. Gunakan git remote set-urlatau edit .git/configuntuk melakukan ini. Menggantikan

https: // username @ github.com / username /repo.git

dengan adil

[email protected]: nama pengguna /repo.git

Anda bahkan dapat memiliki entri di Anda ~/.gitconfigyang memberitahu git untuk menerjemahkan URL jarak jauh dari HTTP atau Git ke SSH.

Dengan cara ini, jika repositori Anda dikonfigurasi untuk HTTP atau Git jarak jauh, git akan mengabaikan pengaturan itu saat mendorong dan akan menggunakan SSH sebagai gantinya.

[url "[email protected]:"]
    pushInsteadOf = git://github.com/
    pushInsteadOf = https://github.com/

( insteadOf =Pengaturan juga dimungkinkan, untuk mengesampingkan penarik dan pendorong.)

pengguna1686
sumber