Я только что включил 2FA (не могу вспомнить никаких других изменений, которые я сделал), и git попросил мое имя пользователя и пароль. Я предоставил и то, и другое, но они были «неправильными». Я пробовал здесь множество решений: Git push требует имени пользователя и пароля, но это не сработало. В частности, при переходе с https на ssh ключ ssh дает
В разрешении отказано (публичный ключ). фатальный: не удалось прочитать из удаленного репозитория.
$ 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://mlbileschi@github.com':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/mlbileschi/scala.git/'
Какие-нибудь советы?
git
github
two-factor-authentication
Макс Билески
источник
источник
Ответы:
Вам необходимо сгенерировать токен доступа. Вы можете создать его, перейдя на страницу настроек .
Используйте этот токен доступа в качестве пароля в командной строке.
источник
git pull
. Вероятно, это локальная проблема, но это может кому-то помочь.The requested URL returned error: 403
когда использую токен в качестве пароля, для нажатия на httpsКомплексное решение состоит из 3 шагов.
Престижность Герго Эрдози. Его ответ в основном правильный, просто Github меняет эту страницу настроек. По состоянию на конец 2016 года, вам необходимо сгенерировать маркер доступа с вашего персонального доступа лексемы страницу .
Используйте этот токен доступа в качестве пароля в командной строке.
Вы можете сохранить свое имя пользователя, включив его в удаленный URL-адрес вашего проекта. Один из способов сделать это отредактировать файл ,
.git/config
чтобы изменитьurl
строку в следующем формате:url = https://YOUR_USERNAME_HERE@github.com/owner/repo.git
Вы можете сохранить свой пароль, запустив его только один раз:
$ git config credential.helper store
а затем ваши будущие пароли git будут сохранены в ~ / .git-credentials в виде открытого текста с использованием формата
https://user:PlaintextPassword@example.com
.Хранение паролей в открытом виде обычно рассматривается как угроза безопасности. Но в этом случае 2FA учетные данные НЕ являются вашим настоящим паролем, это случайно сгенерированная строка. Это так же безопасно, как использование
закрытого ключа ssh и закрытого ключа sshбез парольной фразы. ПРЕДОСТЕРЕЖЕНИЕ: имейте в виду, что если вы также используете другую учетную запись (-и) git без 2FA на этом компьютере, эти реальные пароли также будут сохранены в виде открытого текста.PS: В качестве альтернативы вы можете использовать вход на основе ssh, используя закрытый ключ ssh, защищенный парольной фразой, который был бы более безопасным и менее удобным, но это выходит за рамки этого ответа.
источник
...the credential is NOT your real password, it is a randomly generated string. So it is as secure as using ssh private key.
- это совсем не так . Ключи SSH можно легко защитить парольной фразой прямо из коробки. Обычный~./git-credentials
- совсем не защищен!У меня была похожая проблема. Мне пришлось изменить URL-адрес, используемый в команде git, чтобы включить мое имя пользователя.
Затем, когда он запрашивает PW, используйте токен доступа, который вы создали, следуя инструкциям в ответе Герго Эрдози.
источник
git remote set-url --push origin
с тем же значением, тоgit push origin master
все равно не удастся.git-bash
работало нормальноВ Linux вы можете аутентифицировать свою личность GitHub с помощью ключа SSH.
1) Генерация нового ключа SSH ( источник )
Открыть терминал.
Вставьте текст ниже, подставив свой адрес электронной почты на GitHub.
Это создает новый ключ ssh, используя указанный адрес электронной почты в качестве метки.
2) Привязка ключа к вашей учетной записи GitHub
Откройте терминал и скопируйте сгенерированный открытый ключ
Должен выводить что-то как
Перейдите на https://github.com/settings/keys и щелкните
New SSH Key
, дайте ему название и скопируйте и вставьте открытый ключ.3) Измените происхождение git с
https://
наssh
Откройте терминал,
cd
перейдите в местоположение вашего репозитория и введитеисточник
https
иногда бывает полезна, например, при поддержании восходящего потока воhttps
время вашего форкаssh
, так что вы избегаете случайного перехода к восходящему потоку, посколькуhttps
будет запрашивать пароль и напоминать вам, что вы нацелились не на то репоЭто сработало для меня:
Перейдите в [your-git-repo] /. Git / config
В разделе «
[remote "origin"]
ИзменитеURL
ключ с протокола http на git».пример
Если значение
url
является https://github.com/ .git изменить егоgit@github.com:<repo-url>.git
источник
Если вы уже используете ключи ssh, после включения 2FA он заставит вас читать / писать удаленно с помощью SSH. Вам действительно не нужно добавлять личные токены, а продолжайте использовать существующую пару ключей SSH.
Просто измените свой удаленный URL с HTTPS на SSH:
источник
Это сработало для меня после включения 2FA на Github:
Создайте токен персонального доступа: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line .
ПРИМЕЧАНИЕ. Не забудьте выбрать правильные разрешения для токена.
Запуск:
git clone https://github.com/username/repo.git
Имя пользователя:
your_username
Пароль:
your_token
Дополнительное чтение: https://help.github.com/en/github/using-git/which-remote-url-should-i-use
источник
Я столкнулся с этой проблемой в существующем репо, когда я включил 2FA (двухфакторную аутентификацию) для одного из моих частных репозиториев. Я смог решить эту проблему, выполнив следующие шаги на моем терминале ubuntu 19.0: -
После добавления ключа перейдите к своему терминалу и обновите исходный URL
git remote set-url origin git@github.com:<USERNAME>/<BRANCH-NAME>
Надеюсь, это поможет
источник