Я только что потерял кучу репозиториев с моего диска, поэтому я их клонировал из GitHub. Теперь они запрашивают имя пользователя и пароль каждый раз, когда я что-то отправляю на GitHub. Те, которые не были удалены, не делают этого.
Единственное решение, которое я прочитал для избавления от приглашения имени пользователя / пароля, - это создание ключа ssh. Дело в том, что у меня уже есть ключ, иначе я не смог бы нажать без подсказок в этих репозиториях, которые я не клонировал.
Я просмотрел git config
два моих репозитория, один из которых я могу отправить без пароля, а другой - клонировал. Единственная разница была branch.master.remote
и в branch.master.merge
настройках, которые я сбрасывал, делая git config
одинаково. Но подсказка все еще там.
Я даже не уверен, что генерация нового ключа SSH будет работать. Какие у меня варианты?
Ответы:
Мое предположение:
В ваших старых репозиториях использовались удаленные (
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
чтобы сделать это. замещатьпросто
У вас даже может быть запись,
~/.gitconfig
которая говорит git переводить удаленные URL-адреса из HTTP или Git в SSH.Таким образом, если ваш репозиторий настроен для удаленного HTTP или Git, git будет игнорировать этот параметр при нажатии и вместо этого будет использовать SSH.
(
insteadOf =
Также возможна настройка для отмены как вытягивания, так и толкания.)источник