Клоновані репозитори GitHub запитують пароль, тоді як спочатку створені не роблять


9

Я щойно втратив купу репозиторіїв з свого диска, тому я клонував їх з GitHub. Тепер вони запитують ім’я користувача та пароль кожного разу, коли я щось натискаю на GitHub. Ті, хто не був видалений, цього не роблять.
Єдине рішення, яке я прочитав для позбавлення від ім'я користувача / пароля - це генерування ключа ssh. Річ у тім, що я вже маю ключ, інакше я не міг просуватися без підказок у тих репостах, що не клонував.

Я переглянув git configдва моїх сховища, одне, яке я можу натиснути без пароля, і те, що я клонував. Єдина відмінність була branch.master.remoteі branch.master.mergeнастройки, які я UNSET, роблячи git configте ж саме. Але підказка все-таки є.

Я навіть не впевнений, що генерування нового ssh ключа спрацює. Які мої варіанти?


Будь ласка, перегляньте help.github.com/ssh-isissue та надайте більше інформації. Що відбувається при спробі SSH?

Відповіді:


21

Моя здогадка:

У ваших старих сховищах використовувались віддалені ( git@github.com:або ssh://git@github.com/префікси) SSH , які використовували аутентифікацію відкритого ключа. (Насправді, сервер Github SSH ніколи не запитує пароль.)

У ваших нових сховищах використовується пульт дистанційного керування HTTP ( ), який підтримує лише автентифікацію на основі пароля HTTP Basic і не використовує ваші SSH ключі.https://username@github.com/

Змініть віддалені URL-адреси, щоб знову використовувати SSH. Для цього скористайтеся git remote set-urlабо відредагуйте .git/config. Замініть

https: // ім'я користувача @ github.com / ім'я користувача /repo.git

з просто

git@github.com: ім'я користувача /repo.git

Ви навіть можете мати запис у своєму ~/.gitconfigповідомленні, яке повідомляє git перекладати віддалені URL-адреси з HTTP або Git на SSH.

Таким чином, якщо ваш сховище налаштовано на HTTP або Git віддалене, git ігнорує це налаштування під час натискання і використовуватиме SSH замість цього.

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

( insteadOf =Можлива також установка, щоб змінити як тягнення, так і натискання.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.