Як скинути збережені облікові дані в 'git credential-osxkeychain'?


98

Я слідував інструкціям GitHub щодо налаштування свого облікового запису, і я можу клонувати, але не можу віддалено натискати.

Коли я роблю "git push", я отримую помилку 403. Він має правильну URL-адресу. Я спробував "git credential-osxkeychain get", щоб побачити, що він дає, і це виводить неправильні дані.

Я вважаю, що те, що трапилося, вперше запитувало облікові дані, я думав, що це ще одна заявка, в якій запитується, і вона помістила неправильні.

Мені просто потрібно скинути його, щоб він використовував правильний елемент брелока для мого облікового запису GitHub.

Я пробував:

git credential-osxkeychain erase
git credential-osxkeychain set

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

Я не можу зрозуміти, де вони зберігаються, оскільки вони відсутні в .gitconfigure. Крім того, останніх елементів брелоків, які могли б це бути, немає. (У мене в брелоці кілька облікових записів GitHub, і він не використовує жодного з них.)


Пов'язаний, посвідчення помічника агностика: stackoverflow.com/questions/21745213 / ...
Чіро Сантіллі郝海东冠状病六四事件法轮功


Відповіді:


122

З терміналу:

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

ПРИМІТКА: після введення вище “protocol = https” потрібно натиснути ~~ RETURN ~~ ДВОЙ


2
З якоїсь причини я не зміг знайти жодних облікових даних Git / GitHub у програмі Keychain, але це спрацювало. Дякую!
Дональд

4
Оскільки мені це було незрозуміло: ви повинні ввести всі 3 рядки вище, а потім знову натиснути return - тобто рядки 2/3 вище не виводяться командою, а вводом.
Фредерік

Ця відповідь мені допомогла. Велике спасибі!
Ken Flake

70

Я не знаю, як стерти через командний рядок, але це досить легко зробити за допомогою програми Keychain Access. Просто перейдіть до Додатки -> Службові програми -> Доступ до брелока, а потім введіть "github.com". Ви можете або видалити недійсний елемент, або оновити пароль від програми.


4
Якщо хтось, хто читає це, з’ясовує, як це зробити за допомогою командного рядка, було б приємно це знати.
Фунрол

1
@funroll Інструментом командного рядка є security. На сторінці користувача вказано, що вона має delete-internet-passwordкоманду.
benzado

Дякую за оновлення, я впевнений, що комусь стане в нагоді.
Фунрол

це найкраще рішення
Еліас

З якого брелока?
Брайан Брайс

28

Рішення виявилося таким:

Команда git credential-osxkeychainвикористовувала перший запис облікового запису GitHub у моєму брелоку. Цей не мав доступу до відповідних проектів.

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

Кращою формою підтримки декількох облікових записів GitHub було б непогано, але цілком ймовірно, що більшість людей мають лише один основний рахунок і не стикаються з цією проблемою.


2
Я не впевнений, як це працює для кількох користувачів на одному хості, але ви можете перевірити ssh та використовувати ~/.ssh/configфайл, а не використовувати брелок OSX. Це використовується в тих випадках, коли у вас може бути кілька ключів ssh для різних хостів (а також облікових записів). nerderati.com/2011/03/17/…
jusopi 03.03.15

10

git-credential-osxkeychain зберігає паролі в брелоку Apple, як зазначено вище.

За замовчуванням gitcredentials враховує лише доменне ім'я. Якщо ви хочете, щоб Git розглянув повний шлях (наприклад, якщо у вас кілька облікових записів GitHub), встановіть для useHttpPathзмінної значення true, як описано на http://git-scm.com/docs/gitcredentials.html . Зверніть увагу, що якщо змінити це налаштування, ви знову запитаєте свої облікові дані для кожної URL-адреси.


7

На Mac використовуйте команду git credential-osxkeychain erase.

АБО видалити вручну з брелока з ПрограмиСлужбові програмиДоступ до брелока . Потім видаліть брелок github.com. Потім використовуйте push; він запитає доступ до брелока; то заперечуй.

Він запитає нове ім’я користувача та пароль, додасть його, а потім просуне файл для цього.

Після того, як git pushя знайшов цю помилку. Тоді я використовую верхній регістр - питання:

віддалений: дозвіл user1 / file.git відмовлено користувачеві2 (раніше існував користувач). фатально: неможливо отримати доступ до ' https://github.com/xxxxxxxxxxxx/ ': Помилка, що запитується, повернула: 403



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.