Git постоянно просит у меня пароль - PullRequest
577 голосов
/ 15 октября 2011

Я уже некоторое время пользуюсь Git, но постоянные запросы пароля начинают приводить меня в движение.

Я использую Mac OS X и GitHub, и я настроилGit и мои SSH-ключи в соответствии с инструкциями GitHub на странице Настройка Git .

Я также добавил ключ github SSH в свою цепочку ключей Mac OS X, как упомянуто на странице парольных фраз ключа SSH GitHub .Мой открытый ключ зарегистрирован в Git.

Тем не менее, каждый раз, когда я пытаюсь Git pull, мне приходится вводить свое имя пользователя и пароль.Есть ли что-то кроме ключа SSH, который мне нужно настроить для этого?

Ответы [ 21 ]

5 голосов
/ 01 августа 2012

Я полагаю, что вы исправили свою проблему, но я не вижу здесь решения, которое помогло мне, поэтому вот оно.

Введите в терминале:

echo "" > ~/.ssh/known_hosts

Это опустеетваш файл known_hosts, и вам нужно будет добавить все хосты, которые вы использовали и подключились, но это решило проблему.

3 голосов
/ 01 ноября 2013

Ответ orkoden на использование цепочки для ключей с Git в вашем терминале был неполным и вызывает ошибки. Это то, что вам нужно сделать, чтобы сохранить имя пользователя и пароль, которые вы вводите в терминале в цепочке для ключей:

curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
sudo mv git-credential-osxkeychain /usr/local/bin
sudo chmod u+x /usr/local/bin/git-credential-osxkeychain

Затем введите

git config --global credential.helper osxkeychain

Если вы уже выполнили часть с настройкой Git до того, как выполнить curl, это не проблема; это сработает.

3 голосов
/ 20 января 2016

Как было сказано выше static_rtti, измените

https://github.com/username/repo.git
git://github.com/username/repo.git

на

ssh://git@github.com/username/repo.git

Я сам изменил https в файле .git / config на ssh, но все равноне работалПотом я увидел, что вы должны изменить github.com на git@github.com.Хороший способ получить действительный правильный URL-адрес - перейти на страницу своего проекта и щелкнуть здесь:

Измените HTTPS на SSH, чтобы получить правильный URL-адрес

Затем добавьте этоURL-адрес файла конфигурации.

2 голосов
/ 15 июня 2013

Я согласен с «codehugger» и, используя инструкцию «orkoden», она работала для меня - в NetBeans 7.3 - когда вы щелкаете правой кнопкой мыши по файлу и выбираете контекстное меню - push - открывается окно «push to remote» - Здесь есть два варианта:

  1. origin:https://github.com/myaccount/myproject.git/

  2. https://github.com/myaccount/myproject.git/

Как видите, разница заключается в параметре origin в URL - вы не хотите выбирать эту опцию (1), вы хотите проверить опцию (2), и она прекрасно работает для меня.

2 голосов
/ 14 сентября 2015

Шаг 1: проверьте текущую конфигурацию

cat .git/config

Вы получите:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/path_to_your_git.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = your_username
    email = your_email
[branch "master-staging"]
    remote = origin
    merge = refs/heads/master-staging

Шаг 2: удалите ваше удаленное происхождение

git remote rm origin

Шаг 3: добавить удаленный источник обратно с вашим именем пользователя и паролем

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git
1 голос
/ 13 сентября 2018

Если Git запрашивает у вас имя пользователя и пароль каждый раз, когда вы пытаетесь взаимодействовать с GitHub, вы, вероятно, используете URL-адрес клонирования HTTPS.

Использование удаленного URL-адреса HTTPS имеет некоторые преимущества:проще в настройке, чем SSH, и обычно работает через строгие брандмауэры и прокси.Однако он также предлагает вам вводить учетные данные GitHub при каждом извлечении или отправке хранилища.

Вы можете настроить Git для хранения вашего пароля. Для Windows :

git config --global credential.helper wincred
1 голос
/ 15 августа 2018

Я чувствую, что ответ, предоставленный static_rtti, в некотором смысле хакерский.Я не знаю, было ли это доступно ранее, но инструменты Git теперь предоставляют хранилище учетных данных.

Режим кэширования

$ git config --global credential.helper cache

Используйте режим «кэш», чтобы сохранитьучетные данные в памяти на определенный период времени.Ни один из паролей никогда не сохраняется на диске, и они удаляются из кэша через 15 минут.

Режим хранения

$ git config --global credential.helper 'store --file ~/.my-credentials'

Использование режима «хранилище»сохранить учетные данные в текстовом файле на диске, и они никогда не истекают.

Лично я использовал режим хранения .Я удалил свой репозиторий, клонировал его, а затем мне пришлось один раз ввести свои учетные данные.

Справка: 7,14 Git Tools - Хранение учетных данных

1 голос
/ 16 марта 2018

Если вы используете Windows, и это неожиданно начало происходить неожиданно на GitHub, это, вероятно, связано с тем, что GitHub недавно отключил поддержку устаревших криптографических алгоритмов 1002 * в 2018-02-22, в которойВ этом случае решение заключается в простой загрузке и установке последней версии либо полного Git для Windows , либо просто Git Credential Manager для Windows .

1 голос
/ 11 апреля 2016

Существуют различные виды аутентификации в зависимости от вашей конфигурации. Вот некоторые из них:

  1. git credential-osxkeychain.

    Если ваши учетные данные недействительны, удалите их:

      git credential-osxkeychain erase
    

    или

      printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
    

    Так что Git больше не будет просить у вас разрешения на связку ключей. Затем настройте его снова.

    См .: Обновление учетных данных из цепочки ключей OS X на GitHub

  2. Ваш SSH RSA-ключ.

    Для этого вам нужно сравнить ваш SSH-ключ с тем, что вы добавили, проверьте ssh-add -L / ssh-add -l, используете ли вы правильную идентификационную информацию.

  3. Ваша аутентификация HTTPS (если вы используете https вместо ssh протокола).

    Используйте ~/.netrc (%HOME%/_netrc в Windows), чтобы предоставить свои учетные данные, например,

      machine stash1.mycompany.com
      login myusername
      password mypassword
    

Подробнее: Синхронизация с GitHub при переполнении стека.

1 голос
/ 07 мая 2017

Опечатка в URL заставит Git запрашивать у вас имя пользователя и пароль, глупый Git.

Был протестирован на Kali Linux , Git версии 2.7.0,

Попробуйте:

мерзавец клон https://github.com/thisrepodoesntexists/doesntexists.git

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...