Git push приводит к «Ошибка аутентификации»


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

Да, извините, я начал комментарий по привычке, а затем изменил его.
— 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
Спасибо! Просто была эта ошибка, и это помогло, просто чтобы указать. После того как вы создали свой личный токен доступа, вы копируете его, а затем, когда вы нажимаете на репозиторий, он запрашивает ваше имя пользователя и пароль. Вставьте
— токен

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
— user5359531

607

Попробуйте выполнить следующие действия, чтобы изменить или удалить сохраненные учетные данные:

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

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


2
В моем случае это не «Учетные данные Windows», а «Общие учетные данные». Удалить учетные данные сделать свое дело.
— Тони Гамес

8
Вы можете открыть вышеуказанное окно с помощью (windows + R) -> «control / name Microsoft.CredentialManager»
— Суфиян Ансари

Учетные данные могут быть там, но без «git:» перед ним. Это не сработает. Это должно начинаться с 'git:'
— Marques

1
Мой работодатель установил для Windows аутентификацию Git Hub, поэтому каждый раз, когда я менял свои учетные данные Windows, мне приходилось обновлять ее для контроля версий. Ваш ответ сработал.
— Shary.Sharath

1
Фантастический ответ. Мы поддерживаем внутренний репозиторий BitBucket, в котором все наши учетные данные аутентифицируются в нашей организации. Недавно все мои репозитории стали недоступны для изменения кода. Хотя мне удавалось менять учетные данные в каждом конкретном случае, я действительно не хотел делать это для каждого проекта. Подход @ Pradeep позволил мне решить основную причину, которая заключалась не только в смене пароля. Наша организация недавно сменила имя внутреннего домена, поэтому, централизованно редактировав учетные данные, я смог исправить все свои проекты.
— Майкл М

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
— Ajay Chebbi

64

Во-первых, вы можете убедиться, что используете правильный URL:

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

Затем, если он работал раньше, и если он не запрашивал ваше имя пользователя, это должно быть потому, что вы сохранили свои учетные данные (логин / пароль) в $HOME/.netrcфайле, как описано здесь . Вы можете дважды проверить эти настройки и убедиться, что ваш прокси-сервер, если он у вас есть, не изменился.

Если это все еще не работает, вы можете переключиться на ssh url:

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 (когда больше ничего не помогало). Спасибо!
— Джон Хамфрис -

2
Я никогда не слышал об этом диспетчере учетных данных Windows .... Спасибо!
— Сэм

1
Я указал неверные учетные данные, когда Git запросил у меня идентификатор пользователя и пароль при загрузке новых файлов в удаленный репозиторий. Когда я снова запустил команду push, git не запросил у меня учетные данные, а вместо этого выдал только ошибку проверки подлинности. Прочитав этот ответ, я понял, что git использует учетные данные, хранящиеся в диспетчере учетных данных, и это должно быть причиной, по которой git не запрашивает пароль каждый раз, когда мы запускаем удаленный репозиторий. Я удалил пароль git в диспетчере учетных данных, после чего git снова запросил у меня идентификатор пользователя и пароль.
— Дженна

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 на свой компьютер, снимите флажок с разрешения git credential manager.введите описание изображения здесь


1
Это
— решило

исправил мой тоже. Бесконечно благодарен!
— Брайан Эдвардс

Я не нахожу этот тип решения. Я переустановил мерзавец
— Hoque MD Захидул

Исправил и мою проблему (git был установлен, просто переустановил его,
— сняв отметку с

1
Я также должен был проверить «Использовать собственную библиотеку Windows Secure Channel». Это не проверено по умолчанию.
— Доптруа

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 server
  7. нажмите Удалить из хранилища

    • Также вы можете нажать изменить и изменить свой пароль, хранящийся здесь напрямую.

10

Я столкнулся с «$ git fetch fatal: аутентификация завершилась неудачно для« http: // .... »после того, как мой пароль Windows истек и был изменен. Несколько выборок, перезагрузка и даже переустановка Git с Windows диспетчера учетных данных не помогли.

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


9

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

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

не работает для меня Однако:

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

как-то сработало.


3
Вы переключились с https на ssh
— Джеймс Вежба

Это работает и для меня. Это не волшебство, это потому, что я сохранил конфигурацию для доступа ssh (с настроенным открытым ключом), которые не подобраны для доступа https (который является user / 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 (pull, push, fetch и т. Д.), После того, как я обнаружил ошибку «fatal: Authentication fail», я обновил свой пароль в Windows Диспетчер учетных данных (Панель управления \ Учетные записи пользователей \ Диспетчер учетных данных) для всех элементов, начиная с git: ... и попытался снова, на этот раз сработало!



3

Если вы включили двухфакторную аутентификацию в своей учетной записи Github, войдите в свою учетную запись GitHub и перейдите по адресу : https://github.com/settings/tokens/new, чтобы создать новый токен доступа, скопируйте этот токен и вставьте как пароль для аутентификации в терминале.


2

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

ВНИМАНИЕ ! Используйте только INTERNET EXPLORER! другие браузеры не изменят ваши системные учетные данные.

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

git config user.name "domainName\userName"

И готово, теперь вы можете нажать!


1

Для меня я забыл, что я изменил пароль на Github.com, и моя цепочка для ключей для аутентификации оболочки никогда не обновлялась до этого нового пароля. Удаление всего git из моей цепочки для ключей и повторное выполнение запроса git помогли решить проблему, снова запросив новый пароль.


1

Просто для того, чтобы перезвонить, проблема была решена для меня, так как я просто отменил исходное приглашение, ssh открылось с моей учетной записью bitbucket, я ввел пароль там, и все работало, как ожидалось.


1

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


1

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

Чтобы решить, я открыл командную строку и запустил

 rundll32.exe keymgr.dll, KRShowKeyMgr

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


0

Я также столкнулся с ошибкой (вот почему я попал сюда), но ни одно из предложений не сработало для меня. Это был мой первый раз, когда я пытаюсь развернуть локальный Git в Azure. Когда я получил эту ошибку, после нескольких попыток я сбросил свои учетные данные (щелкнув ссылку в Azure). Проблема в том, что в этот момент мне сообщают, что мое имя пользователя уже занято, поэтому я также изменил свое имя пользователя на другое. В конце концов, я вручную удалил папку .git на своем локальном диске и снова развернул ее без проблем.


0

Постановка проблемы: « Ошибка аутентификации git fatal». Я использую bitbucket.

Решение: я просто удалил пользователя из системы управления доступом bitbucket, а затем добавил того же пользователя. Файл .gitconfig прост

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

[push]
    default = simple

0

с правильными учетными данными, если проблема преобладает

если вы используете бета-версию androidstudio 2.1, то это ошибка, обновите ее до бета-версии 2 (файл обновления 3 Мб), это сработало для меня


0

Убедитесь, что у вас есть ЗАПИСЬ разрешение нажать.

read ***write*** admin 

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 Studio Canary build 3.1+, если вы используете инструмент git для Android Studio, вы можете использовать следующее:

  • Нажмите на Android Studio
  • Нажмите на настройки ...
  • GO в VersionControl -> Github
  • Здесь Изменить тип аутентификации на пароль
  • Этот шаг потребует от вас ввести логин и пароль. Введите имя пользователя GitHub в качестве логина и пароль GitHub в качестве пароля.
  • Нажмите на кнопку тестирования.

Если соединение успешно, то вы сделали, и вы можете использовать клиентский интерфейс Android Studio Github.


0

Если вы используете ssh и клонированы с https, это не будет работать. Клон с ssh и затем push и pull должен работать как положено!


0

В случае, если это косвенно полезно, так как этот вопрос теперь является хитом для проблем с аутентификацией http в git: Windows Credential Manager правильно сохранил мой пароль, и так как я использовал Git LFS, я настроил http URL вместо обычного ssh: / / .

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

Простое обновление пароля непосредственно в графическом интерфейсе Wincred сработало: просто найдите git:https://<your-url>запись.


0

Это случилось с нами после принудительной «двухфакторной аутентификации» перед входом в Gitlab. Нам пришлось вставить текст внутри id_rsa.pub в Gitlab, а затем снова ввести репозиторий в код VS с помощью терминала.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.