Подтвердить что ты не робот

Git проверка подлинности завершается после включения 2FA

Я просто включил 2FA (я не могу думать о каких-либо других изменениях, которые я сделал), а git попросил мое имя пользователя и пароль. Я представил оба, но они были "неправильными". Я пробовал много решений здесь: Git push требует имя пользователя и пароль, но это не сработало. В частности, при переключении с https на ssh ключ ssh дает

Отказано в доступе (публикация). fatal: Не удалось прочитать из удаленного репозитория.

$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Username for 'https://github.com': **********
Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/mlbileschi/scala.git/'

Любые советы?

4b9b3361

Ответ 1

Вам нужно создать токен доступа. Вы можете создать его, перейдя на страницу .

enter image description here

Используйте этот токен доступа в качестве пароля в командной строке.

Ответ 2

Комплексное решение занимает 3 шага.

  1. Слава Герго Эрдоси. Его ответ в значительной степени правильный, просто Github меняет эту страницу настроек. По состоянию на конец 2016 года вам необходимо сгенерировать токен доступа со страницы "Личные токены доступа".

    enter image description here

    Используйте этот токен доступа в качестве пароля в командной строке.

  2. Вы можете сохранить свое имя пользователя, включив его в удаленный URL вашего проекта. Один из способов сделать это - отредактировать ваш .git/config чтобы изменить строку url в следующий формат:

    url = https://[email protected]/owner/repo.git

  3. Вы можете сохранить свой пароль, запустив его только один раз:

    $ git config credential.helper store

    и тогда ваши будущие пароли git будут сохранены в ~/.git-credentials, в виде открытого текста, используя формат https://user:[email protected].

    Хранение пароля (ов) в виде открытого текста обычно считается угрозой безопасности. Но в этом случае 2FA учетные данные НЕ являются вашим реальным паролем, это случайно сгенерированная строка. Так что это так же безопасно, как использование закрытого ключа ssh и секретного ключа ssh без пароля. ПРЕДУПРЕЖДЕНИЕ: имейте в виду, что, если вам случится использовать на этой машине еще одну учетную запись (-ии) git без 2FA, эти реальные пароли также будут храниться в виде открытого текста.

PS: В качестве альтернативы вы можете выбрать использование входа в систему по протоколу ssh, используя защищенный паролем частный ключ ssh, который будет более безопасным и менее удобным, но он выходит за рамки этого ответа.

Ответ 3

У меня была аналогичная проблема. Мне пришлось изменить URL-адрес, используемый в команде git, чтобы включить мое имя пользователя.

git push https://[email protected]/mlbileschi/scala.git

Затем, когда он запрашивает PW, используйте маркер доступа, который вы создали, следуя инструкциям в ответе Джерго Эрдоси.

Ответ 4

В Linux вы можете аутентифицировать свою личность на GitHub, используя ключ SSH.

1) Генерация нового ключа SSH (источник)

Откройте терминал.

Вставьте текст ниже, подставив в свой адрес электронной почты GitHub.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Это создаст новый ключ ssh, используя предоставленное письмо в качестве метки.


2) Привязка ключа к вашей учетной записи GitHub

Откройте терминал и скопируйте сгенерированный открытый ключ

cat ~/.ssh/id_rsa.pub

Должен выводить что-то как

ssh-rsa AAAAB3NzaC1y ... mKAKw== [email protected]

Перейдите по адресу https://github.com/settings/keys и нажмите " New SSH Key, присвойте ему заголовок и скопируйте и вставьте открытый ключ.

enter image description here


3) Измените происхождение git с https:// на ssh

Откройте терминал, cd к вашему хранилищу и введите

git remote set-url origin [email protected]:<github username>/<repository name>

Ответ 5

Это сработало для меня:

  • Перейдите в [your-git-repo]/. Git/config

  • Под [remote "origin"] измените ключ URL с протокола http на git.

пример

Если значение url [email protected]:<repo-url>.git https://github.com/.git, измените его на [email protected]:<repo-url>.git

Ответ 6

Если вы уже используете ssh-ключи, после включения 2FA он заставит вас читать/писать удаленно с помощью SSH. На самом деле вам не нужно добавлять личные токены, а продолжайте использовать существующую пару ключей SSH.

Просто измените ваш удаленный URL с HTTPS на SSH:

git remote set-url origin [email protected]:<github-username>/<repo-name>