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.