Результати натискання Git у "Помилка автентифікації"


708

Я використовую Github на деякий час , і я був добре з git add, git commitі до git pushсих пір без проблем. Раптом у мене виникає помилка, яка говорить:

фатально: автентифікація не вдалася

У терміналі я клонував сховище, працював над файлом, а потім я git addдодав файл до журналу фіксування, і коли я це зробив git commit, він працював чудово. Нарешті, git pushзапитує ім'я користувача та пароль. Я ставлю їх правильно і кожен раз, коли я це роблю, він говорить про ту саму помилку.

Хтось має уявлення, в чому причина цієї проблеми, і як я можу її виправити?

Вміст .git/config:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

яке ваше ім’я користувача на github та який вміст .git / config?
mnagel

додайте його до запитання, коментарі не справляються з довгим текстом
mnagel

Так вибачте, я почав коментар звично, потім змінив його.
zkirkland

Ваша URL-адреса виглядає неправильно. Я думаю, що слід починати з цього https://, а не http://.
Джон Сакмайстер

Змінено на https ... не працювало.
zkirkland

Відповіді:


1205

Якщо ви ввімкнули двофакторну автентифікацію у своєму обліковому записі Github, ви не зможете переходити через HTTPS за допомогою пароля своїх облікових записів. Натомість вам потрібно створити персональний маркер доступу. Це можна зробити в налаштуваннях програми вашого акаунта Github. Використання цього маркера як пароля повинно дозволяти вам перейти до віддаленого сховища через HTTPS. Використовуйте своє ім'я користувача, як завжди.

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

Вам також може знадобитися оновити походження для вашого сховища, якщо встановлено значення https:

git remote -v 
git remote remove origin 
git remote add origin git@github.com:user/repo.git  

5
Справді. +1. Я тут присутній PAT stackoverflow.com/a/19223896/6309 і детально процес там: stackoverflow.com/a/18607931/6309
VonC

3
Мені потрібно було по-новому генерувати свої клавіші rsa, щоб нормальні операції Git працювали після включення 2FA.
R11G

5
Дякую! Просто була ця помилка, і це допомогло, лише зазначити. Щойно ви створили свій особистий маркер доступу, ви скопіюєте це, після чого, коли натискатимете репо, він запитає ваше ім’я користувача та пароль. Вставте маркер доступу в пароль
pourmesomecode

88
ви також можете зробити git remote add origin https://username:access-token@github.com/username/repo.gitдля зберігання вашого особистого маркера доступу.
mailmindlin

2
Для мене все, що я мав зробити, це ввімкнути автентифікацію SSH з моєї локальної машини на моєму акаунті GitHub, а потім перейти на віддалену адресу ssh git; help.github.com/articles/changing-a-remote-s-url
користувач5359531

607

Спробуйте виконати наступні дії для редагування або видалення збережених облікових даних:

  1. Натисніть кнопку Пуск
  2. Тип: Менеджер довірених даних (У Windows 10 це в розділі "Пуск-> Налаштування". Потім знайдіть "Менеджер довірених даних")
  3. Дивіться Windows Credentials Managerярлик і двічі клацніть його, щоб відкрити програму.
  4. Як тільки програма відкрита, натисніть на Windows Credentialsвкладку.
  5. Знайдіть облікові дані, які ви хочете видалити / оновити, вони почнуться з "git:" і можуть початися з "ada:"
  6. Натисніть на запис даних, це відкриє детальну інформацію про запис.
  7. Натисніть Редагувати або Видалити, якщо потрібно, і підтвердіть.
  8. Вимийте, промийте, повторіть по мірі необхідності.

введіть тут опис зображення


2
У моєму випадку це не в "Уповноважених даних Windows", а в "Загальних облікових даних". Видаліть обліковий запис зробіть трюк.
Тоні Гамез

8
Ви можете відкрити вищевказане вікно за допомогою (windows + R) -> "управління / ім'я Microsoft.CredentialManager"
Sufiyan Ansari

Повноважні дані можуть бути там, але без 'git:' перед ним. Це не буде працювати. Почати потрібно з «git:»
Marques

1
Мій роботодавець встановив автентифікацію Windows на Git Hub, тому кожен раз, коли я міняв свої облікові дані Windows, мені доводилося оновлювати його для контролю джерела. Ваша відповідь спрацювала.
shary.sharath

1
Фантастична відповідь. Ми підтримуємо внутрішнє сховище BitBucket, де кожен з наших облікових даних облікових записів аутентифікований нашій організації. Останнім часом усі мої сховища стали недоступними для натискання змін коду. Хоча я міг змінювати облікові дані на кожному конкретному випадку, я дійсно не хотів цього робити для кожного проекту. @ Підхід Прадіпа дозволив мені вирішити основну причину, яка була більш ніж просто зміною пароля. Нещодавно наша організація змінила назву внутрішнього домену, тому, редагуючи облікові дані централізовано, я зміг виправити всі свої проекти.
Майкл М

79

Це працювало для мене, і воно також пам’ятає мої облікові дані:

  1. Виконати гітбаш

  2. Вкажіть на каталог репо

  3. Біжи git config --global credential.helper wincred


18
Мені потрібно було трохи часу, щоб дізнатися, що це робить - він використовує диспетчер даних даних на панелі керування Windows Щоб припинити його використання: git config –global credential.helper unset Джерело та більше деталей у цій відповіді .
Ян Ш

7
@IanW Ви маєте на увазі git config --global --unset credential.helper? Ось що працювало для мене в Git Bash.
Еллен Спертус

1
Будьте обережні з цією командою, вона замінить реальний шлях до вашого довіреного помічника просто "wincred", який, очевидно, не те, що вам потрібно.
amarax

2
Я запустив цю команду, щоб дізнатися, що це не те, що я хотів, правильний спосіб зняти це git config --global --unset credential.helper. Зрештою, я відновив правильну настройку за допомогою git config credential.helper store.
Омар

Це мені допомагає! Дякую!
Джефсама

70

Може, ви нещодавно змінили пароль для свого git-акаунта. Ви можете спробувати git push з -uопцією

git push -u origin branch_name_that_you_want_to_push

Після виконання вищевказаної команди він попросить надати оновлений пароль

Сподіваюся, це може вам допомогти


це працює, для чого потрібно моє середовище https лише
BMW

1
Звичайно, набагато простіше, ніж більшість відповідей. (І зміна паролів повинна бути найпоширенішою причиною помилки автентифікації ;-))
Мішель

якщо ви відчуваєте це на існуючому клоні - тоді просто зробітьgit push -u
Аджай Чеббі

64

По-перше, ви можете переконатися у використанні належного URL-адреси:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Потім, якщо він працював раніше, і якщо він не запитував у вас ім’я користувача, це повинно бути, тому що ви зберегли свої облікові дані (логін / пароль) у $HOME/.netrcфайлі, як пояснено тут . Ви можете двічі перевірити ці настройки та переконатися, що ваш проксі, якщо він у вас є, не змінився.

Якщо це все ще не працює, ви можете перейти до URL-адреси ssh:

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

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


9
Перехід з HTTPS на SSH вирішив проблему для мене.
leymannx

3
Я ввімкнув двофакторну автентифікацію для свого облікового запису GH і переключення віддаленого URL-адреси на SSH з HTTPS вирішило для мене проблему "автентифікація не вдалася". Має сенс. Дякую!
Вальтер Роман

56

Це трапляється, якщо ви змінили логін або пароль облікового запису служби Git (Git). Потрібно змінити його в Менеджері облікових даних Windows . введіть "Менеджер довірених даних" у меню пошуку Windows, відкрийте його.

Менеджер облікових даних Windows-> Кредитні дані Windows і в розділі "Загальні облікові дані" редагують ваш git-пароль.


4
Це врятувало мене під час роботи з GitLab (коли майже нічого іншого не допомогло). Дякую!
Джон Хамфріс - w00te

2
Я ніколи не чув про це менеджера облікових даних Windows .... Дякую!
Сем

1
Я дав неправильні облікові дані, коли Git запропонував мені ідентифікатор користувача та пароль, під час переміщення нових файлів у віддалений сховище. Коли я знову запустив push-команду, git не запропонував мені отримати облікові дані, але замість цього вона лише підкинула помилку автентифікації. Після прочитання цієї відповіді я зрозумів, що git використовує облікові дані, що зберігаються в диспетчері облікових даних, і це повинно бути причиною, коли git не вимагає ввести пароль щоразу, коли ми натискаємо у віддалений сховище. Я видалив пароль git у менеджері облікових даних, після чого git знову запропонував мені ввести ідентифікатор користувача та пароль.
Jchenna

41

В основному мій обліковий запис закінчився, і я зіткнувся з вищезгаданим питанням.

Наступні 2 команди допомогли мені:

git config --global --unset credential.helper

git config credential.helper store

Він наступного разу запитає вас, коли ви намагаєтесь натиснути.

Дотримуйтесь інструкцій нижче, щоб отримати докладнішу інформацію про захищене і незахищене зберігання імені користувача та паролів:

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache


Це працювало для мене після того, як я змінив пароль на Github і не змінив свої облікові дані на місцевому рівні.
Скотт

33

Якщо ви виявили помилку автентифікації під час введення правильного пароля та імені користувача, це проблема git. Щоб вирішити цю проблему під час встановлення git на вашій машині, зніміть прапорець увімкнути диспетчер облікових записів enable gitвведіть тут опис зображення



фіксований мін теж. Завдяки мільйонів!
Брайан Едвардс

Я не знаходжу такого типу рішення. Я знову встановив git
Hoque MD Zahidul

Я також
виправив

1
Мені довелося також перевірити "Використовувати рідну бібліотеку захищених каналів Windows". Він не перевіряється за замовчуванням.
doptrois

25

Я думаю, що чомусь GitHub очікує, що URL-адреса НЕ має субдомен www. Коли я використовую (наприклад)

git remote set-url origin https://www.github.com/name/repo.git

він дає такі повідомлення:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

Однак, якщо я користуюся

git remote set-url origin https://github.com/name/repo.git

це працює чудово. Це не має для мене занадто великого сенсу ... але я думаю пам’ятаю, що не розміщувати www у віддаленій URL-адресі для сховищ GitHub.

Також зауважте, що URL-адреси клонів, надані на веб-сторінці сховища GitHub, не містять www.


4
Не ставити "www" на "github.com" працює. Оскільки це має значення, Github має виправити їх сайт, щоб ви не могли клонуватись за допомогою "www".
Джон Нагль

1
Дякую:) У моєму URL-адресі відсутній .git, і цей коментар змусив мене ознайомитися з цим і зрозуміти це.

19

Привіт, я отримував ту саму помилку, я спробував усі рішення, які були згадані на цій сторінці, але не вийшло. Нарешті, я знайшов рішення, тому подумав надсилати його. Будь ласка, виправте мене, якщо я десь помиляюся. Такі помилки виникають, якщо іноді ваш системний пароль нещодавно змінився будь-коли. Він спробує перевірити старий пароль. Отже, виконайте наступні дії:

  1. Перейдіть до панелі управління
  2. Клацніть на облікові записи користувачів
  3. Під керуючим обліковими записами
  4. Перейдіть до розділу Керувати обліковими записами Windows
  5. Перейдіть до Загальних даних
  6. Розгорніть вкладку сервера git
  7. натисніть на Видалити з сховища

    • Також ви можете натиснути редагувати та змінити свій пароль, збережений тут безпосередньо.

10

Я зіткнувся з "$ git fetch fatal: автентифікація не вдалася до" http: // .... "після закінчення терміну дії мого Windows та його зміни. Немає допомоги, перезавантаження та навіть перевстановлення git за допомогою менеджера даних Windows.

Дивно правильна відповідь десь тут у коментарях, але не у відповідях (а деякі з них насправді дивні!). Вам потрібно перейти на панель керування -> Менеджер довірених даних / Уповноважені Windows та оновити пароль для git: http: // yourrepoaddress


9

Я не дуже впевнений, що я зробив, щоб отримати цю помилку, але роблю:

git remote set-url origin https://...

не працювало для мене. Однак:

git remote set-url origin git@bitbucket.org:user/repo

якось спрацювало.


3
Ви перейшли з https на ssh
James Wierzba

Це працює і для мене. Це не магія, це тому, що я зберігаю конфігурацію для доступу до ssh (із налаштованим відкритим ключем), які не підбираються для доступу до https (що є користувачем / pass + MFA).
Даніель Дубовський

8

У мене була така ж проблема. Я встановлюю URL таким чином:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Я також вилучений з конфігураційного файлу цього запису: askpass = /bin/echo. Потім "git push" попросив мене ім'я користувача та пароль, і цього разу це спрацювало.


Мені не потрібно , щоб видалити з конфігураційного файлу на цей запис: askpass = /bin/echo.
Дарій Міляускас

6

У моєму випадку я нещодавно змінив пароль Windows і в мене налаштований ключ SSH для дій, пов’язаних з git (тягнути, натиснути, отримати і т. Д.), Після того, як я зіткнувся з помилкою "фатальний: Не вдалося пройти автентифікацію", я оновив свій пароль у Windows диспетчер облікових даних (Панель управління \ Облікові записи користувачів \ Кредитний менеджер) для всіх елементів, що починаються з git: ..., і спробував ще раз, працював цього разу!



3

Якщо ви ввімкнули двофакторну автентифікацію у своєму обліковому записі Github, тоді увійдіть у свій обліковий запис GitHub та перейдіть за адресою : https://github.com/settings/tokens/new, щоб створити новий маркер доступу, скопіюйте цей маркер та вставте як пароль для аутентифікації в терміналі.


2

Якщо ви перебуваєте у вікні та намагаєтесь перейти на сервер Windows, на якому користувачі домену працюють як користувачі репозиторію (TFS), спробуйте потрапити у URL TFS (тобто http:\\tfs ) за допомогою IE. введіть дані вашого облікового запису домену та нехай відображається сторінка.

ОБЕРЕЖНО використовуйте лише ІНТЕРНЕТ-ЕКСПЛОРЕР! інші веб-переглядачі не зможуть змінити облікові дані вашої системи.

Тепер перейдіть до git bash та змініть віддаленого користувача для сховища, як показано нижче:

git config user.name "domainName\userName"

І готово, тепер можна натиснути!


1

Для мене я забув, що змінив пароль на Github.com, і мій брелок для автентифікації оболонки ніколи не оновлювався до цього нового пароля. Видалення всього git з моєї брелки, а потім повторне виконання запиту git допомогло вирішити проблему, знову запропонувавши мені новий пароль.


1

Тільки щоб задзвонити тут, що вирішило проблему для мене, це те, що мене просто скасували з початкового запиту, ssh відкрився з моїм обліковим записом bitbucket, я ввів пароль і все працювало так, як очікувалося.


1

Я зіткнувся з тим же питанням на windows. Більшу частину часу я зазвичай стикаюся з проблемою через використання декількох git-акаунтів. Якщо у вас є Windows, відкрийте термінал як адміністратор і спробуйте запустити команди ще раз. Переконайтеся, що у вас є права доступу адміністратора.


1

Я додав до Bitbucket, пов’язаного з Git, і мені довелося видалити збережені ключі, оскільки це спричинило фатальну помилку.

Щоб вирішити, я відкрив командний рядок і побіг

 rundll32.exe keymgr.dll, KRShowKeyMgr

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


0

Я також зіткнувся з помилкою (саме тому я приземлився тут), але жодна з пропозицій не працювала для мене. Це був мій перший раз, коли я намагаюся розгорнути локальний Git в блакиті. Коли я отримав цю помилку, після декількох спроб я скинув свої облікові дані (натиснувши посилання в Azure). Проблема полягає в тому, що в цей момент він повідомляє мені, що моє ім’я користувача вже прийнято, тому я також змінив своє ім'я користувача на інше. Врешті-решт я вручну видалив папку .git з локального диска і без проблем перемістив її.


0

Постановка проблеми: "Не вдалося виконати автентифікацію git fatal". Я використовую bitbucket.

Рішення: Я просто видалив користувача з використання управління доступом до бітбукета, а потім додав того самого користувача. Файл .gitconfig простий

[user]
    name = BlaBla
    email = blabla@gmail.com

[push]
    default = simple

0

з правильними обліковими даними, якщо проблема переважає

якщо ви використовуєте androidstudio 2.1 beta, то його помилка, оновлення до бета-версії 2 (файл оновлення 3 mb), це працювало для мене



0

Переконайтеся, що ваш ключ ssh додано до поточного сеансу ssh.

  1. Скопіюйте вихід у cat ~/.ssh/id_rsa.pubсвої налаштування GitHub під клавішами SSH та GPG.

  2. Оновіть свій поточний сеанс ssh за допомогою ssh-add ~/.ssh/id_rsa.pub

Я використовую Windows Powershell із встановленим Openssh.


0

в студії Android canary build 3.1 або новішої версії, якщо ви використовуєте інструмент Android git для студії, ви можете використовувати наступне:

  • Клацніть на Android Studio
  • Натисніть Налаштування ...
  • Перейдіть у VersionControl -> Github
  • Тут змініть тип Auth на пароль
  • Для цього кроку потрібно буде ввести логін та пароль. Введіть ім'я користувача github як логін та пароль github як пароль.
  • Натисніть кнопку Тест.

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


0

Якщо ви використовуєте ssh та клоновані https, це не працюватиме. Клоніруйте ssh, а потім натискання та витягування повинні працювати, як очікувалося!


0

У випадку, якщо це дотично корисно, оскільки це питання зараз є найпопулярнішим для проблем із автентифікацією http із git: Менеджер керуючих ресурсами Windows правильно зберігав мій пароль, і оскільки я використовував Git LFS, я налаштував URL-адресу http замість звичайного ssh: / / .

Моя проблема полягала в тому, що моя політика корпоративного пароля змусила змінити пароль пароля, але я ніколи не оновлював свої збережені облікові дані (оскільки я завжди використовую ключ ssh).

Просте оновлення пароля безпосередньо в GUI Wincred працювало: просто шукайте git:https://<your-url>запис.


0

Це трапилося з нами після примушування "Двофакторної автентифікації" перед входом від Gitlab. Нам довелося вставити текст всередині id_rsa.pub до Gitlab, а потім знову ввести сховище у код VS за допомогою терміналу.

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