GitHub: недійсне ім’я користувача або пароль


401

У мене на 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 та рекомендацій багатьох обговорень стеків, але ніяк. Чи маєте ви уявлення про те, що я, можливо, зробив неправильно?


Я не впевнений, чи варто надсилати відповідь чи ні (велика ймовірність отримати знижку), оскільки я вирішив це повідомлення про помилку, змінивши пароль у налаштуваннях github після спроб багатьох спроб паролем "правильний" (перевірити елемент перевірки).
Фрукти

Відповіді:


274

https: //git@github.com/eurydyce/MDANSE.git - не URL- код ssh, це URL-адреса (для цього потрібна назва вашого облікового запису 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 (персональний маркер доступу), як видно з " Використання маркера в командному рядку ".

Це стосується лише URL-адрес HTTPS, на це обмеження не впливає SSH.


упс! Ви маєте рацію, і ці зміни в моєму локальному конфігурації змусили все працювати. Дуже дякую.
Евридіка

78
Зовсім не розумієте цієї відповіді
Хмара

1
@Упевнений, яка частина не має ясності, як я можу вдосконалити цю відповідь?
VonC

У мене було https посилання на клонування, яке не працювало. Але я замінив git @ url, і він почав працювати. Що може бути причиною цього? Я також видалив деякий запис github зі свого брелка Mac. Чи може це бути пов’язано? Однак я використовував його через ssh, конфігуруючи ключі. Будь-які вказівники будуть корисні в цьому.
cg

1
@byronaltice Якщо це SSH, це означає, що у вас є файл ~/.ssh/configабо %USERPROFILE%\.ssh\configфайл із github.comзаписом.
VonC

1011

Після включення Два фактори аутентифікації (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
Це було моєю проблемою, додавши два фактора auth, на які я підозрював, проте документації на це бракувало. Дякую за відповідь!
Погріндіс

11
@BeauSmith: Це набагато змістовніше редагування, ніж ми зазвичай допускаємо. Ви в основному повністю переписали цю відповідь. Будь ласка, опублікуйте це як свою власну, окрему відповідь . Також дивіться Що ви робите, якщо хтось в основному переписує всю вашу відповідь?
Martijn Pieters

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

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

86

Етапи рішення:

  1. Панель управління
  2. Кредитний менеджер
  3. Клацніть Вікна Навчальні дані
  4. У розділі «Загальна грамота» відображатиметься git url, оновлення імені користувача та пароля
  5. Перезапустіть Git Bash і спробуйте клонувати

4
У мене виникли проблеми з версією компанії github (тому використовуючи локальне ім’я користувача / пароль). Це рішення зафіксувало його.
mkennedy

У нових вікнах ви можете шукати "Вхідні дані Windows" або подібні вашою мовою. Це з'явиться результат, і ви можете спробувати це рішення.
Чарльз Темпо

1
Ідеальне рішення для приміщень github, де компанії зобов’язують вас використовувати https
avi.elkharrat

56

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

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

Видалення облікових даних за допомогою командного рядка

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

Для цього введіть таку команду:

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

# [Now Press Return]

Якщо це вдасться, нічого не роздрукується. Щоб перевірити, чи працює він, спробуйте і клонуйте сховище з GitHub або запустіть попередню дію ще раз, як у моєму випадку git push. Якщо вам буде запропоновано ввести пароль, запис брелока буде видалено.


2
Для windows: git pover pover-wincred erase host = github.com протокол = https
Juan Uribe

Я зіткнувся з цією проблемою на репортажі 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

Я вирішив це. Тут потрібно створити пароль для свого користувача

  1. Клацніть на Ваш профіль та налаштування Клацніть на Ваш профіль та налаштування

  2. Потім створіть пароль програми, виберіть пароль, який буде створено, вставте цей пароль до терміналу Створіть пароль програми


4

Відключення двофакторної аутентифікації в github працювало на мене.

Я бачу, що є видалена відповідь, яка говорить про це, з причиною видалення як "не відповідає на питання". Якщо це працює, то я думаю, що це відповідає на питання ...


Це дивно. Те саме сталося і зі мною. Я просто відключив двофакторну автентифікацію, і вона працює для мене. :)
abhijeetps

Це працювало для мене станом на червень 2020 року. Дякую!
Gcamara14

4

Я зробив:

$git pull origin master

Потім він попросив [Ім'я користувача] та [Пароль] і, здається, зараз він працює нормально.


Це працювало для мене. Я використовував витягу замість тягнути, але все одно це не має значення. Класно!
атерешков

2

Якщо ви отримаєте це повідомлення про помилку в цій ситуації:

  • використання github для підприємництва
  • використовуючи credential.helper = wincred в git config
  • використовуючи свої облікові дані Windows, які ви нещодавно змінили

Тоді подивіться на цю відповідь: https://stackoverflow.com/a/39608906/521257

Windows зберігає облікові дані в менеджері облікових даних, очищає їх або оновлює.


1

Можливо, ви отримаєте цю помилку, оскільки ви оновили свій пароль. Тож на Terminal спочатку переконайтеся, що ви очистите свої облікові дані 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. У розділі «Загальна грамота» відображатиметься git url, оновлення імені користувача та пароля
  5. Перезапустіть Git Bash і спробуйте клонувати

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