Github OpenSSH запрашивает пароль для ссылки https - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь отправить в удаленный репозиторий.Удаленный источник - ссылка https.Однако, когда я пытаюсь нажать, я получаю запрос на ввод имени пользователя, а затем всплывающее окно OpenSSH запрашивает мой пароль.После ввода пароля (или токена личного доступа) я получаю сообщение об ошибке

remote: Password authentication is not available for Git operations.
remote: You must use a personal access token or SSH key.
remote: See https://******/settings/tokens or https://******/settings/ssh
fatal: unable to access 'https://******': The requested URL returned error: 403

Файл конфигурации git приведен ниже.В частности, все ссылки выглядят как https, а не как ssh, поэтому я не знаю, почему OpenSSH запрашивает пароль.Я смог толкать на прошлой неделе и (насколько я знаю) я ничего не изменил.С тех пор я, конечно, больше никуда не давил.

core.symlinks=false
core.autocrlf=true
core.fscache=true
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true
push.default=simple
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
user.name=******
user.email=******
user.username=******
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=https://******
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Сообщение об ошибке вызвано тем, что в вашей учетной записи настроена двухфакторная аутентификация (или, возможно, единый вход). Когда у вас включен 2FA, GitHub больше не позволяет использовать ваш пароль для аутентификации.

Вы можете либо выбрать для входа в свою учетную запись ключ SSH, либо создать личный токен доступа, который можно использовать вместо пароля для HTTPS. Если вы работаете в Windows, вы можете использовать встроенный помощник для учетных данных, чтобы сохранить этот токен, зашифрованный в хранилище учетных данных Windows, поэтому вам нужно будет ввести его только один раз.

Поскольку похоже, что вы используете GitHub или корпоративный экземпляр GitHub, обратите внимание, что токен должен содержать как минимум разрешение «репо», если вы хотите, чтобы он имел доступ к частным репозиториям (или «public_repo» для общедоступных), и если ваша организация использует систему единого входа, вы должны включить единый вход для этого токена . Если вы решите использовать SSH, вы также должны включить SSO для своего ключа SSH, если это необходимо.

Причина, по которой вы видите окно askpass OpenSSH, даже если вы не используете SSH, заключается в том, что Git для Windows использует этот инструмент, чтобы запросить ваш пароль, поэтому вам не нужно вводить терминал.

0 голосов
/ 22 ноября 2018

Во-первых, не забудьте рассмотреть все git config с git config -l.
И директивой grep для InsteadOf, которая может изменить ваш https URL в SSH или наоборот.

git config -l | grep -i insteadof

Затем проверьте (для URL-адреса HTTPS) свое кэширование учетных данных, где Git будет использоваться по умолчанию и предоставит учетные данные (учетная запись GitHub и пароль) старой учетной записи / пароля (кэшированного).

Проверьте, есть ли у вас помощник по учетным данным , который бы кэшировал ваши (старая учетная запись) учетные данные (имя пользователя / пароль), используемые для вашей аутентификации.

git config credential.helper 

На Mac, как прокомментировал 1017 * от Arpit J , просто перейдите / откройте свой доступ к цепочке для ключей-> найдите связанный с github.com файл-> и отредактируйте учетные данные там.

https://help.github.com/assets/images/help/setup/keychain-access.png

См. " Обновление учетных данных из цепочки ключей OSX "

Например, в Windows это будет Диспетчер учетных данных Windows .
Открытьхранилище учетных данных Windows, и посмотрите, зарегистрирован ли там первый пользователь: удалитезапись, и вы сможете пройти аутентификацию со вторым пользователем.

(Вот пример для BitBucket)

https://kwilson.io/blog/wp-content/uploads/2015/01/4-store.png

Inкомандной строки, как здесь видно :

git credential reject
protocol=https
host=github.com
<empty line here>

, а затем установить новое имя пользователя и пароль:

git credential fill
protocol=https
host=github.com
<empty line here>

Введите git help credential дляподробная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...