Клонированные репозитории GitHub запрашивают пароль, а изначально созданные не


9

Я только что потерял кучу репозиториев с моего диска, поэтому я их клонировал из GitHub. Теперь они запрашивают имя пользователя и пароль каждый раз, когда я что-то отправляю на GitHub. Те, которые не были удалены, не делают этого.
Единственное решение, которое я прочитал для избавления от приглашения имени пользователя / пароля, - это создание ключа ssh. Дело в том, что у меня уже есть ключ, иначе я не смог бы нажать без подсказок в этих репозиториях, которые я не клонировал.

Я просмотрел git configдва моих репозитория, один из которых я могу отправить без пароля, а другой - клонировал. Единственная разница была branch.master.remoteи в branch.master.mergeнастройках, которые я сбрасывал, делая git configодинаково. Но подсказка все еще там.

Я даже не уверен, что генерация нового ключа SSH будет работать. Какие у меня варианты?


Пожалуйста, смотрите help.github.com/ssh-issues и дайте более подробную информацию. Что происходит, когда вы пытаетесь SSH?

Ответы:


21

Мое предположение:

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

Ваши новые репозитории используют HTTP remotes ( ), которые поддерживают только основанную на пароле 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.