Помилка автентифікації 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.