Помилка автентифікації GitHub через https, повернення неправильної електронної адреси


128

Ініціювання натискання або будь-якої іншої дії з GitHub з командного рядка (через https, не ssh), який вимагає, щоб ім'я користувача та пароль не тільки не вдалося, але, коли це станеться, він повернеться

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

У мене немає @github.comадреси. Пароль і ім’я користувача є правильними.

Я знаю, що я міг би перейти на SSH та використовувати клавіші, але це не відповідає, чому автентифікація не працює через https.


Документація git-scm.com/book/en/… git-config - Отримати та встановити сховище чи глобальні параметри git-scm.com/docs/git-config
Джон Сміт

Відповіді:


171

Підтримка GitHub одразу визначила корінь проблеми: Двофакторна авторизація.

Щоб використовувати GitHub над оболонкою з https, створіть маркер OAuth . Як зазначається на сторінці, мені довелося видалити свої ідентифікатори користувача та пароля з Keychain, але, osx-keychainна місці, маркер зберігається як пароль, і все працює точно так само, як і в https без двофакторної авторизації.


4
+1. Ви також можете використовувати PAT (персональний доступ до маркера) в зашифрованому netrc: stackoverflow.com/a/18607931/6309
VonC

Яка різниця між PAT та OAuth?
липня

@lindhe Маркер OAuth - це тип маркера, PAT - маркер OAauth в даному випадку.
Керрі Джонс

22

У мене немає @github.comадреси

Вам не потрібно: @- це роздільник між іменем користувача: паролем та доменом.
Це не адреса електронної пошти.

Повна https-адреса GitHub:

https://username:password@github.com/username/reponame.git

Без пароля (який потім буде заданий у командному рядку), це дасть:

https://username@github.com/username/reponame.git

Але знову ж таки, username@github.comце не адреса електронної пошти, а лише перша частина облікових даних.

Переконайтеся , що корпус вашого usernameі reponameправильно: він чутливий до регістру .

Зауважте, що ви можете зберігати та шифрувати свої облікові дані в .netrc.gpg (або _netrc.gpgв Windows), якщо ви не хочете чітко вказати дані в URL-адресі.
Див. " Чи є спосіб пропустити введення пароля під час використанняhttps://github ".


Ви також можете залишити пароль, вводячи пароль щоразу. У такому випадку це було б https://username@github.com/username/reponame.git.
Марк Хілдрет

О, це має сенс. Дякую. Я знав про чутливість регістру і впевнений, що ім’я користувача та пароль, які я надаю, є правильними. (Вони добре працюють, щоб увійти на веб-сайт.) A
ele

2
@ele так, але ваш пароль містить спеціальні символи (наприклад ! * ' ( ) ; : @ & = + $ , / ? # [ ])? Їх потрібно буде "кодувати відсотками" ( en.wikipedia.org/wiki/Percent-encoding ).
VonC

Пароль буквено-цифровий. Я побачу, що дає "git remote -v", коли я наступний за машиною, але звучить так, що мені може знадобитися звернутися до служби підтримки GitHub.
еле

@ele спершу спробуйте .netrc підхід (навіть не шифруйте, лише для тестування). Якщо це не працює, підтримка GitHub - це дійсно наступний крок.
VonC

21
  • Перейдіть до Менеджера довірів => Менеджер Windows
  • Видаліть усе, що стосується tfs
  • Тепер натисніть кнопку Додати загальний обліковий запис та вкажіть наступні значення

    (1) Інтернет або мережа адреса: git: https: //tfs.donamain ім'я (2) ім'я користувача: ваше ім'я користувача (3) пароль: ваш пароль

    це повинно це виправити


Ого. Мені подобається, як він зберігає неправильний пароль, якщо ви ввели його неправильно. Тоді вам доведеться вручну оновити його або видалити
Колобський каньйон

10

Це може статися в Windows, якщо ви раніше зберігали інші облікові дані. Перейдіть до диспетчера даних і видаліть збережені облікові дані github


1
Також можна безпосередньо відредагувати пароль у Менеджері облікових даних Windows на новий пароль.
Спенхует


8

Те саме сталося і зі мною, коли я включив двосторонню аутентифікацію для github. Що я вирішив:

  • Отримати вам особистий маркер доступу. Це вам доведеться перевірити та генерувати, якщо вони вже недоступні. Посилання на це: https://github.com/settings/tokens
  • Перейдіть у свою локальну та видаліть папку та повторно клонуйте гілку з github.
  • Тепер спробуйте команду, яку ви намагалися раніше, тобто: master git pull origin
  • Введіть ім'я користувача та пароль. Вставте створений маркер, а також не забудьте зберегти цей маркер кудись, тому при необхідності ви можете його повторно використовувати.

Це вирішить вашу проблему.


Добрий опис - це сталося зі мною на mac => довелося відновити мій PAT
SliverNinja - MSFT

Ми повинні генерувати маркер, якщо нам потрібно дозволів, яких немає в попередніх згенерованих жетонах. Також якщо ми втратили попередній маркер, ми можемо генерувати цей новий маркер і використовувати як пароль для автентифікації замість оригінального пароля git.
Мохд Белал

5

Просто в цьому випадку це допомагає будь-кому іншому, я був підписаний на додаток mac, командний рядок працює нормально, але оскільки я потім увімкнув 2FA, мої команди повертали помилку. Я повинен був вийти з програми, то я міг би використовувати мій особистий доступ лексему в моїх командах , як у відповідь Еля ігрових тут .

Сподіваємось, що хтось допомагає!


-2

У Windows може бути заблокований антивірус або брандмауер Windows. Тимчасово вимкніть ці служби та натисніть / витягніть з віддаленого джерела.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.