Sklonowane repozytorium GitHub pyta o hasło, podczas gdy pierwotnie utworzone nie

9

Właśnie straciłem kilka repozytoriów z dysku, więc sklonowałem je z GitHub. Teraz pytają o nazwę użytkownika i hasło za każdym razem, gdy przesyłam coś do GitHub. Te, które nie zostały usunięte, tego nie robią.
Jedynym rozwiązaniem, które przeczytałem, aby pozbyć się pytania o nazwę użytkownika / hasło, jest wygenerowanie klucza ssh. Chodzi o to, że mam już klucz, w przeciwnym razie nie mógłbym pchać bez monitów w tych repozytoriach, których nie klonowałem.

Przejrzałem git configdwa z moich repozytoriów, jedno, które mogę wypychać bez hasła i jedno, które sklonowałem. Jedyną różnicą było branch.master.remotei branch.master.mergeustawienia, które ustawione, czyniąc git configto samo. Ale podpowiedź wciąż tam jest.

Nie jestem nawet pewien, czy wygenerowanie nowego klucza ssh będzie działać. Jakie są moje opcje?

usr
źródło
Zobacz help.github.com/ssh-issues i podaj więcej szczegółów. Co się stanie, gdy spróbujesz SSH?

Odpowiedzi:

21

Zgaduję że:

Twoje stare repozytoria korzystały z pilotów SSH ( [email protected]:lub ssh://[email protected]/prefiksów), które korzystały z uwierzytelniania klucza publicznego. (W rzeczywistości serwer Github SSH nigdy nie prosi o hasło.)

Nowe repozytoria korzystają z pilotów HTTP ( ), które obsługują tylko uwierzytelnianie podstawowe HTTP oparte na hasłach i nie używają kluczy SSH.https://username@github.com/

Zmień zdalne adresy URL, aby ponownie korzystać z SSH. Aby to zrobić, użyj git remote set-urllub edytuj .git/config. Zastąpić

https: // nazwa użytkownika @ github.com / nazwa użytkownika / repo.git

z właśnie

[email protected]: nazwa użytkownika /repo.git

Możesz nawet mieć wpis, ~/.gitconfigktóry mówi gitowi, aby tłumaczył zdalne adresy URL z HTTP lub Git na SSH.

W ten sposób, jeśli twoje repozytorium jest skonfigurowane dla zdalnego HTTP lub Git, git zignoruje to ustawienie podczas wypychania i zamiast tego użyje SSH.

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

( insteadOf =Możliwe jest również ustawienie, aby zastąpić zarówno ciągnięcie, jak i pchanie).

użytkownik1686
źródło