Ответ 1
Вам нужно создать токен доступа. Вы можете создать его, перейдя на страницу .
Используйте этот токен доступа в качестве пароля в командной строке.
Я просто включил 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/'
Любые советы?
Вам нужно создать токен доступа. Вы можете создать его, перейдя на страницу .
Используйте этот токен доступа в качестве пароля в командной строке.
Слава Герго Эрдоси. Его ответ в значительной степени правильный, просто Github меняет эту страницу настроек. По состоянию на конец 2016 года вам необходимо сгенерировать токен доступа со страницы "Личные токены доступа".
Используйте этот токен доступа в качестве пароля в командной строке.
Вы можете сохранить свое имя пользователя, включив его в удаленный URL вашего проекта. Один из способов сделать это - отредактировать ваш .git/config
чтобы изменить строку url
в следующий формат:
url = https://[email protected]/owner/repo.git
Вы можете сохранить свой пароль, запустив его только один раз:
$ git config credential.helper store
и тогда ваши будущие пароли git будут сохранены в ~/.git-credentials, в виде открытого текста, используя формат https://user:[email protected]
.
Хранение пароля (ов) в виде открытого текста обычно считается угрозой безопасности. Но в этом случае 2FA учетные данные НЕ являются вашим реальным паролем, это случайно сгенерированная строка. Так что это так же безопасно, как использование закрытого ключа ssh и секретного ключа ssh без пароля. ПРЕДУПРЕЖДЕНИЕ: имейте в виду, что, если вам случится использовать на этой машине еще одну учетную запись (-ии) git без 2FA, эти реальные пароли также будут храниться в виде открытого текста.
PS: В качестве альтернативы вы можете выбрать использование входа в систему по протоколу ssh, используя защищенный паролем частный ключ ssh, который будет более безопасным и менее удобным, но он выходит за рамки этого ответа.
У меня была аналогичная проблема. Мне пришлось изменить URL-адрес, используемый в команде git, чтобы включить мое имя пользователя.
git push https://[email protected]/mlbileschi/scala.git
Затем, когда он запрашивает PW, используйте маркер доступа, который вы создали, следуя инструкциям в ответе Джерго Эрдоси.
В Linux вы можете аутентифицировать свою личность на GitHub, используя ключ SSH.
Откройте терминал.
Вставьте текст ниже, подставив в свой адрес электронной почты GitHub.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Это создаст новый ключ ssh, используя предоставленное письмо в качестве метки.
Откройте терминал и скопируйте сгенерированный открытый ключ
cat ~/.ssh/id_rsa.pub
Должен выводить что-то как
ssh-rsa AAAAB3NzaC1y ... mKAKw== [email protected]
Перейдите по адресу https://github.com/settings/keys и нажмите " New SSH Key
, присвойте ему заголовок и скопируйте и вставьте открытый ключ.
https://
на ssh
Откройте терминал, cd
к вашему хранилищу и введите
git remote set-url origin [email protected]:<github username>/<repository name>
Это сработало для меня:
Перейдите в [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
Если вы уже используете ssh-ключи, после включения 2FA он заставит вас читать/писать удаленно с помощью SSH. На самом деле вам не нужно добавлять личные токены, а продолжайте использовать существующую пару ключей SSH.
Просто измените ваш удаленный URL с HTTPS на SSH:
git remote set-url origin [email protected]:<github-username>/<repo-name>