it-roy-ru.com

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

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

Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://[email protected]/eurydyce/MDANSE.git/'

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

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

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

238
Eurydice

https: //[email protected]/eurydyce/MDANSE.git - это не ssh-URL, а https-адрес (для которого требуется имя вашей учетной записи GitHub вместо «git»).

Попробуйте использовать ssh://[email protected]:eurydyce/MDANSE.git или просто [email protected]:eurydyce/MDANSE.git

git remote set-url Origin [email protected]:eurydyce/MDANSE.git

OP Pellegrini Eric добавляет:

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

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

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

165
VonC

После включения двухфакторной аутентификации (2FA) вы можете увидеть что-то подобное при попытке использовать git clone, git fetch, git pull или git Push:

$ git Push Origin master
Username for 'https://github.com': your_user_name
Password for 'https://[email protected]': 
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

614
Oliver

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

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

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

Если вы используете https://[email protected]/username/repository.git, то вы предварительно задали имя пользователя, которое Git будет использовать для аутентификации: something. Поскольку вы использовали https://[email protected], Git попытается войти в систему, используя имя пользователя git, для которого ваш пароль, конечно, не работает. Так что вместо этого вам придется использовать ваше имя пользователя.

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

Чтобы сделать это, вам нужно изменить удаленный URL-адрес, чтобы Git знал, что ему нужно подключиться через SSH. Формат тогда такой: [email protected]:username/repository. Чтобы обновить ваш URL, используйте эту команду:

git remote set-url Origin [email protected]:username/repository
22
poke

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

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

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

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

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

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

# [Now Press Return]

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

17
Ahmad Awais

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

7
Shiva Rajkumar

Вместо git pull также попробуйте git pull Origin master

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

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

После git pull Origin master он запросил пароль и, похоже, обновился сам

1
Paul

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

1
Paras saini

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

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

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

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

1
BiAiB

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

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

Сделайте это git remote set-url Origin [email protected]:username/repository

0
Divyanshu Rawat

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

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

0
GreenAsJade