GitHub: неверное имя пользователя или пароль


404

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

Password for 'https://git@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://git@github.com/eurydyce/MDANSE.git/'

Тем не менее, установка моего ключа SSH на GitHub кажется правильным. Действительно, когда я делаю, ssh -T git@github.comя получаю

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

Кажется, это говорит о том, что с этой стороны все в порядке (eurydyce - мое имя пользователя на github). Я строго следовал инструкциям, данным на github, и рекомендациям многих стековых дискуссий, но никак не мог. Не могли бы вы понять, что я мог сделать неправильно?


Я не уверен, должен ли я публиковать ответ или нет (высокий шанс получить downvote), так как я решил это сообщение об ошибке, изменив пароль в настройках github после того, как попытался сделать много попыток с «правильным» паролем (проверка по элементу проверки).
Фрукты

Ответы:


274

https: //git@github.com/eurydyce/MDANSE.git - это не ssh-URL, а https-адрес (для которого требуется имя вашей учетной записи GitHub вместо ' git').

Попробуйте использовать ssh://git@github.com:eurydyce/MDANSE.gitили простоgit@github.com:eurydyce/MDANSE.git

git remote set-url origin git@github.com:eurydyce/MDANSE.git

OP Пеллегрини Эрик добавляет:

Это то, что я сделал в моем ~/.gitconfigфайле, который в настоящее время содержит следующие записи[remote "origin"] url=git@github.com:eurydyce/MDANSE.git

Это не должно быть в вашем глобальном конфиге (тот, что в ~/).
Вы можете проверить git config -lв вашем репо: что URL должен быть объявлен в локальной конфигурации: <yourrepo>/.git/config.

Поэтому убедитесь, что вы находитесь в пути репо при выполнении git remote set-urlкоманды.


Как было отмечено в Оливером «s ответ , HTTPS URL не будет использовать имя пользователя / пароль , если два-фактор аутентификации (2fa) активируется.

В этом случае пароль должен быть PAT (токен личного доступа), как показано в разделе « Использование токена в командной строке ».

Это применимо только для HTTPS URL, это ограничение не затрагивает SSH.


Упс! Вы правы, внесение этих изменений в мой локальный конфиг заставило все работать. Большое спасибо.
Эвридика

81
Совсем не понимаю этот ответ
Облако

1
@ Конечно, какой части не хватает ясности, как я могу улучшить этот ответ?
VonC

У меня была ссылка клона https, которая не работала. Но я заменил на git @ url, и он начал работать. В чем может быть причина этого? Я также удалил некоторые записи GitHub из моего Mac Keychain. Может ли это быть связано? Тем не менее, я использовал его через ssh, настраивая ключи. Любые указатели будут полезны в этом.
Cg

1
@byronaltice Если это SSH, это означает, что у вас есть файл ~/.ssh/configили %USERPROFILE%\.ssh\configфайл с github.comзаписью в нем.
VonC

1013

После включения Два фактора аутентификации (2fa), вы можете увидеть что - то вроде этого при попытке использования git clone, git fetch, git pullили git push:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://your_user_name@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

Почему это происходит

Из справочной документации GitHub :

После включения 2FA вам нужно будет ввести личный токен доступа вместо кода 2FA и вашего пароля GitHub.

...

Например, когда вы получаете доступ к хранилищу , используя Git в командной строке с помощью команды , как git clone, git fetch, git pullили git pushс HTTPS URL - адреса, то вы должны предоставить имя пользователя GitHub и личный маркер доступа при запросе имени пользователя и пароля. В командной строке не будет указано, что вы должны ввести свой личный токен доступа, когда он запрашивает ваш пароль.

Как это исправить

  1. Создайте токен личного доступа . (Подробное руководство по созданию персонального токена доступа для командной строки .)
  2. Скопируйте токен личного доступа.
  3. Повторите попытку команды, которую вы пробовали, и используйте вместо своего пароля токен личного доступа.

Похожий вопрос: https://stackoverflow.com/a/21374369/101662


14
Кудо и голос против; новое поколение токенов - вот что мне нужно. Также; «Копировать код» включал дополнительные (недействительные) символы, поэтому мне пришлось вручную вводить мой ... 20 [?] значный случайный ключ.
th3byrdm4n

7
Это была моя проблема, после добавления 2-факторной аутентификации, которую я подозревал, однако документации по этому вопросу не хватало. Спасибо за ответ!
Погриндис

11
@BeauSmith: это намного более существенное редактирование, чем мы обычно допускаем. Вы в основном полностью переписали этот ответ. Пожалуйста, опубликуйте это как свой собственный, отдельный ответ . Также посмотрите, что вы делаете, если кто-то в основном переписывает весь ваш ответ?
Мартин Питерс

8
Давайте все позволим, чтобы решение откатилось или не было решено @Oliver здесь - в любом случае есть вполне обоснованный аргумент
Flexo

10
Редактор здесь… Поскольку кажется, что люди, помечающие этот ответ как правильный (как и я), приходят на эту страницу с проблемой, которая немного отличается от предполагаемой для автора, я пытался добавить некоторые термины «google juice» и сделать ответ более наглядным привлекательным, так что другие, ищущие это решение, могут найти его Попытка сделать вещи лучше для сообщества. 😀
Бо Смит

86

Шаги решения:

  1. Панель управления
  2. Диспетчер учетных данных
  3. Нажмите Учетные данные окна
  4. В разделе Generic Credential будут отображаться git url, обновляться имя пользователя и пароль.
  5. Перезапустите Git Bash и попробуйте клонировать

4
У меня была эта проблема с версией GitHub компании (поэтому с использованием локального имени пользователя / пароля). Это решение исправило это.
Mkennedy

В новых окнах вы можете искать «учетные данные Windows» или аналогичные на вашем языке. Появится результат, и вы можете попробовать это решение.
Чарльз Темп

1
Идеальное решение для GitHub, где компании обязывают вас использовать https
avi.elkharrat

56

Если, как и я, вы только что обновили свой пароль и столкнулись git pushс этой проблемой, это очень легко исправить.

Только для пользователей Mac. Вам нужно удалить записи доступа к OSX Keychain для GitHub. Вы можете сделать это через терминал, выполнив следующие команды.

Удаление ваших учетных данных через командную строку

Через командную строку вы можете использовать учетную запись помощника напрямую, чтобы стереть запись цепочки для ключей.

Для этого введите следующую команду:

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

Если это успешно, ничего не будет распечатано. Чтобы проверить, что это работает, попробуйте клонировать репозиторий из GitHub или повторите предыдущее действие, как в моем случае git push. Если вам будет предложено ввести пароль, запись цепочки для ключей была удалена.


2
Для Windows: git учетная запись-стереть хост = протокол github.com = https
Хуан Урибе

Я столкнулся с этой проблемой в репозитории BitBucket. Этот ответ host=bitbucket.orgвместо GitHub исправил это для меня.
Гатч

26

При использовании https://URL-адреса для подключения к вашему удаленному репозиторию Git не будет использовать SSH в качестве аутентификации, а вместо этого попытается выполнить базовую аутентификацию через HTTPS. Обычно вы просто используете URL без имени пользователя, например https://github.com/username/repository.git, и тогда Git предложит вам ввести и имя пользователя (ваше имя пользователя GitHub), и ваш пароль.

Если вы используете https://something@github.com/username/repository.git, то вы должны предварительно настроить имя пользователя Git будет использовать для проверки подлинности: something. Поскольку вы использовали https://git@github.com, Git попытается войти в систему, используя gitимя пользователя, для которого ваш пароль, конечно, не работает. Таким образом, вам придется использовать свое имя пользователя вместо.

Альтернативой является использование SSH для аутентификации. Таким образом, вы не будете вводить пароль постоянно; и так как это, кажется, уже работает, это то, что вы должны использовать.

Для этого вам необходимо изменить удаленный URL, поэтому Git знает, что ему нужно подключиться через SSH. Формат то это: git@github.com:username/repository. Чтобы обновить ваш URL, используйте эту команду:

git remote set-url origin git@github.com:username/repository

при попытке вашей команды я получаю следующее сообщение warning: remote.origin.url has multiple values. Это может быть связано с тем, что у меня уже есть удаленный тег в моем файле ~ / .gitconfig, который содержит значение [remote "origin"] url=git@github.com:eurydyce/MDANSE.git.
Эвридика

18

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


4
Не уверен, почему это получил отрицательный голос. В моем случае мои учетные данные были обновлены, а второй git pushзапросил соответствующее обновление, как показывает этот ответ.
Цифровая травма

Не уверен, что вы имели в виду, он не запрашивает новые полномочия, выполняемые git push origin master...
Betlista

13

А не git pullпопробуйgit pull origin master

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

$ git pull
remote: Invalid username or password.
fatal: Authentication failed for ...

После git pull origin masterэтого он попросил пароль и, казалось, обновить себя


7

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

Быстрое решение состоит в том, чтобы установить удаленный URL-адрес, чтобы указать sshнет https.

Сделай это git remote set-url origin git@github.com:username/repository


5

Я получаю это при клонировании приложения из bitbucket:

Cloning into 'YourAppName'...
Password for 'https://youruser id': 
remote: Invalid username or password

Я решил это. Здесь вам нужно создать пароль для вашего ID пользователя

  1. Нажмите на Ваш профиль и настройки Нажмите на Ваш профиль и настройки

  2. Затем создайте пароль приложения, выберите свое имя, пароль будет сгенерирован, вставьте этот пароль в терминал. Создать пароль приложения


4

Отключение двухфакторной аутентификации на github работало для меня.

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


Это странно То же самое случилось со мной. Я просто отключил двухфакторную аутентификацию, и теперь она работает для меня. :)
abhijeetps

Это сработало для меня с июня 2020 года. Спасибо!
Gcamara14

4

Я сделал:

$git pull origin master

Затем он запросил [Имя пользователя] и [Пароль] и, похоже, теперь работает нормально.


Это сработало для меня. Я использовал fetch вместо pull, но в любом случае это не имеет значения. Круто!
атерешков

2

Если вы получаете это сообщение об ошибке в этой ситуации:

  • используя GitHub для предпринимательства
  • используя credential.helper = wincred в git config
  • используя свои учетные данные Windows, которые вы недавно изменили

Тогда посмотрите на этот ответ: https://stackoverflow.com/a/39608906/521257

Windows хранит учетные данные в диспетчере учетных данных, очищает их или обновляет.


1

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


1

Я была такая же проблема. И я решил это, изменив путь https://github.com/YourName/RepoNameк удаленной ветке с на git@github.com:YourName/RepoName.gitв настройках репозитория клиентского приложения.


1

Я постоянно сталкиваюсь с этой проблемой. Убедитесь, что вы установили git --config user.name "", а не свое настоящее имя, что я делал несколько раз ...


0

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

Вы можете найти все шаги настройки ssh в документации . Во-первых, убедитесь, что у вас нет ключей ssh ​​(id_rsa.pub и т. Д.) С$ ls -al ~/.ssh


-1
  1. Панель управления
  2. Диспетчер учетных данных
  3. Ищите параметры веб-учетных данных и учетных данных Windows
  4. в любом из них вы найдете учетные данные github и исправьте их с правильными учетными данными
  5. Откройте новый экземпляр git bash, и вы сможете выполнять команды git.

Это сработало для меня, я смог вытащить и подтолкнуть в моем удаленном репо.



-3

Это решение сработало для меня:

  1. открыть панель управления
  2. Перейти к диспетчеру учетных данных
  3. Нажмите Учетные данные окна
  4. В разделе Generic Credential будут отображаться git url, обновляться имя пользователя и пароль.
  5. Перезапустите Git Bash и попробуйте клонировать

1
Этот ответ дублирует существующий ответ, который не является полезным. Когда у вас достаточно репутации (мне кажется, 15), вы можете проголосовать за те ответы, которые вы считаете полезными. Голосование будет правильным ответом, а не добавлением этого дублирующего ответа.
AdrianHHH
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.