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

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

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

Я даже не уверен, что создание нового ssh-ключа будет работать. Каковы мои варианты?

9 голосов | спросил usr 3 SatEurope/Moscow2011-12-03T06:25:23+04:00Europe/Moscow12bEurope/MoscowSat, 03 Dec 2011 06:25:23 +0400 2011, 06:25:23

1 ответ


21

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

В ваших старых хранилищах используются удаленные SSH-пульты ([email protected]: или ssh://[email protected]/), которые использовали аутентификацию с открытым ключом. (На самом деле сервер Github SSH никогда не запрашивает пароль.)

В ваших новых репозиториях используются удаленные каналы HTTP (https://username@github.com/), которые поддерживают только аутентификацию HTTP Basic на основе пароля и не используйте ваши SSH-ключи.

Измените свои удаленные URL-адреса, чтобы снова использовать SSH. Используйте git remote set-url или отредактируйте .git/config, чтобы сделать это , Заменить

https: // имя пользователя  @ github.com / имя пользователя  /repo.git

с просто

[email protected]:  имя пользователя  /repo.git

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

Таким образом, если ваш репозиторий настроен для удаленного HTTP или Git, git будет игнорировать эту настройку при нажатии и вместо этого использовать SSH.

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

(параметр An insteadOf = также можно переопределить как нажатие , так и ).

ответил grawity 3 SatEurope/Moscow2011-12-03T17:16:29+04:00Europe/Moscow12bEurope/MoscowSat, 03 Dec 2011 17:16:29 +0400 2011, 17:16:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132