Как сбросить сохраненные учетные данные в git credential-osxkeychain?

98

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

Когда я делаю «git push», я получаю ошибку 403. У него правильный URL. Я попробовал «git credential-osxkeychain get», чтобы увидеть, что он давал, и он распечатал неправильные учетные данные.

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

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

Я пробовал:

git credential-osxkeychain erase
git credential-osxkeychain set

Программа никогда не дает никаких подсказок. Set скажет "плохой ввод", если я не сделаю правильно. Я пробовал вставить " password=password" и т. Д., Но потом, когда я делаю "получить", я все равно получаю старые.

Я не могу понять, где они хранятся, так как их нет в .gitconfigure. Кроме того, нет недавних элементов связки ключей, которые могли бы быть им. (У меня есть несколько учетных записей GitHub в моей связке ключей, и он не использует ни одну из них.)

нирвана
источник

Ответы:

124

От Терминала:

 $ git credential-osxkeychain erase
 host=github.com
 protocol=https
 <press return>

ПРИМЕЧАНИЕ: после того, как вы введете «протокол = https» выше, вам нужно нажать ~~ RETURN ~~ ДВАЖДЫ.

маз
источник
2
По какой-то причине мне не удалось найти учетные данные Git / GitHub в приложении Keychain, но это сработало. Спасибо!
Дональд
4
Поскольку мне это было непонятно: вы должны ввести все 3 строки выше, а затем снова нажать return - т.е. строки 2/3 выше не выводятся из команды, а вводятся.
Frederik
Этот ответ мне помог. Большое спасибо!
Ken Flake
70

Я не уверен, как стереть данные через командную строку, но это довольно легко сделать через приложение Keychain Access. Просто перейдите в «Приложения» -> «Утилиты» -> «Связка ключей» и введите «github.com». Вы можете удалить недействительный элемент или обновить пароль с помощью приложения.

Benzado
источник
4
Если кто-то, читающий это, поймет, как это сделать из командной строки, было бы неплохо узнать.
funroll
1
@funroll Инструмент командной строки security. На странице delete-internet-passwordруководства указано, что у нее есть команда.
benzado
Спасибо за обновление, уверен, что кому-то будет полезно.
funroll
это лучшее решение
Элиас Фазель
С какого брелка?
Брайан Брайс,
29

Решение оказалось таким:

Команда git credential-osxkeychainиспользовала первую запись учетной записи GitHub в моей связке ключей. Не у этого был доступ к рассматриваемым проектам.

Я решил проблему, коснувшись учетной записи в Keychain Access, так что ее дата изменилась (думаю, я только что изменил комментарий), и теперь, когда она стала самой последней учетной записью GitHub, она стала первой, которая вернулась в credential-osxkeychain, и, таким образом, все работало .

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

нирвана
источник
2
Я не уверен, как это работает для нескольких пользователей на одном хосте, но вы можете проверить ssh и использовать ~/.ssh/configфайл вместо использования OSX Keychain. Это используется в случаях, когда у вас может быть несколько ключей ssh ​​для разных хостов (а также для думающих учетных записей). nerderati.com/2011/03/17/…
jusopi 03
10

git-credential-osxkeychain хранит пароли в цепочке ключей Apple, как указано выше.

По умолчанию gitcredentials учитывает только доменное имя. Если вы хотите, чтобы Git учитывал полный путь (например, если у вас несколько учетных записей GitHub), установите для useHttpPathпеременной значение true, как описано на http://git-scm.com/docs/gitcredentials.html . Обратите внимание, что при изменении этого параметра ваши учетные данные будут снова запрашиваться для каждого URL-адреса.

MacFreek
источник
7

На Mac используйте команду git credential-osxkeychain erase.

ИЛИ удалите вручную из связки ключей из ПриложенияУтилитыДоступ к Связке ключей . Затем удалите связку ключей github.com. Затем используйте push; запросит доступ к связке ключей; потом отрицай.

Он запросит новое имя пользователя и пароль, добавит его, а затем отправит файл для этого.

После того, как git pushя обнаружил эту ошибку. Затем я использую верхний регистр:

удаленный: доступ к пользователю user1 / file.git запрещен пользователю user2 (ранее существующий пользователь). фатальный: невозможно получить доступ к https://github.com/xxxxxxxxxxxx/ : запрошенный URL вернул ошибку: 403

Амит Кумар
источник
6

Попробуйте бежать /Applications/Utilities/Keychain Access.

эхристоферсон
источник