Git Clone від GitHub за https з двофакторною автентифікацією


129

Нещодавно я почав використовувати двофакторну автентифікацію на GitHub, і тепер не можу використовувати git через https на приватних репортах звичайним чином:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/[...]/MyPrivateRepo/'

Якщо я відключу двофакторну автентифікацію, я можу використовувати її як і раніше:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Counting objects: 147, done.
remote: Total 147 (delta 0), reused 0 (delta 0), pack-reused 147
Receiving objects: 100% (147/147), 22.70 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.

Я знаю, що можу використовувати SSH, і все працює, але чи є спосіб я зберегти двофакторну автентифікацію, поки все ще можу використовувати GitHub через HTTPS, наприклад, надсилаючи токен аутентифікації з моїм запитом?

Відповіді:


155

Дізнайтеся, як це виправити тут:

https://github.com/blog/1614-two-factor-authentication#how-does-it-work-for-command-line-git

Як це працює для командного рядка Git?

Якщо ви використовуєте SSH для аутентифікації Git, будьте спокійні: вам нічого не потрібно робити. Якщо ви використовуєте HTTPS Git, замість того, щоб ввести пароль, введіть особистий маркер доступу. Їх можна створити, перейшовши на сторінку ваших особистих токенів доступу .


2
Ви можете додати маркер у файл .netrc, як я виявив у наступному суті , щоб зробити автентифікацію також автоматичною.
Мартін Вулстенхульме

1
Але я використовую ssh, коли витягую з github, він також натякає мені на введення пароля та імені користувача, чому це? Дякую за вашу відповідь!
Старшанг

3
все ще його не працює для мене після введення маркера доступу в mac після клонування sudo git .... система запитує ім'я користувача та пароль у полі пароля Я ввожу маркер, але він не працює для мене. отримуємо таку ж помилку
ojus kulkarni

40
Використовуйте маркер як своє ім’я користувача та введіть порожній пароль.
Коті Сміт

Зверніть увагу на проміжок часу, коли копіюєте маркер з сайту github (тобто якщо не використовується кнопка копіювання github). Мені потрібно було трохи зрозуміти, чому це не працює для мене.
gmargari

34

Відповідно до відповіді @ Nitsew , створіть свій особистий маркер доступу та використовуйте маркер як своє ім’я користувача та введіть порожній пароль.

Пізніше вам не знадобляться облікові дані для доступу до всіх ваших приватних репортажів.


Де ви б рекомендували зберігати маркер доступу на віддаленому сервері?
bdoubleu

2

Для всіх, хто бореться, те, що для мене працювало, - це створити особистий маркер доступу, а потім використовувати його як ім'я користувача І пароль (у відповідь, що відкрилася).


1

Якщо у вашого репорта ввімкнено 2FA. Дуже пропоную використовувати додаток, наданий github.com Ось посилання: https://desktop.github.com/

Після того як ви завантажили його та встановили. Дотримуйтесь дошку, програма попросить вас надати одноразовий пароль для входу. Як тільки ви заповнили одноразовий пароль, ви зможете побачити свої репо / проекти вже зараз.


допомагає лише в тому випадку, якщо ви використовуєте windows
Ian Turton

0

1-е: Отримайте особистий маркер доступу. https://github.com/settings/tokens
2nd: Поставте акаунт та маркер. Приклад тут:

$ git push
Username for 'https://github.com':            # Put your GitHub account name
Password for 'https://{USERNAME}@github.com': # Put your Personal access token

Посилання про те, як створити персональний маркер доступу: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line

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