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

у меня есть проект, размещенный на 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.

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

7 ответов


https://git@github.com/eurydyce/MDANSE.git не является url ssh, это 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

на ОП Пеллегрини Эрик добавил:

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

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

поэтому убедитесь, что вы находитесь в пути РЕПО, когда делаю .


после включения двухфакторной аутентификации (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 С URL-адресами HTTPS вы должны указать свое имя пользователя GitHub и свой личный токен доступа при запросе имени пользователя и пароля. В командной строке не будет указано, что вы должны ввести свой личный маркер доступа, когда он запрашивает ваш пароль.

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

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

смежный вопрос: https://stackoverflow.com/a/21374369/101662


при использовании 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

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

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

удаление своих учетных данных с помощью командной строки

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

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

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

# [Now Press Return]

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


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


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

  • используя github для entreprise
  • используя учетные данные.helper=wincred в конфигурации git
  • используя учетные данные windows что ты изменить недавно

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

Windows хранит учетные данные в учетные данные менеджер, очистите или обновите его.


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