Git: примусово запросити користувача та пароль


75

Нещодавно я оновив свою локальну інсталяцію Git до 1.8.1з 1.8.0.1.

Я помічаю, що коли я працюю на GitHub, це більше не вимагає від мене імені користувача та пароля для push.

Це мене турбує, оскільки я вважаю, що кожен раз потрібно вводити користувача та пароль як хороший захід безпеки. (а якщо хтось інший користується моїм комп’ютером?)

Я перевірив наступне:

  • 1.8.0.1 на іншому комп’ютері все ще запитує ім’я користувача та пароль.
  • мій акаунт на github все ще застосовує приватний контроль / контроль безпеки.
  • Я використовую віддалені посилання https, а не ssh.
  • На добру міру, я перевірив у своєму ~/.sshfonder. Там нічого поганого немає.
  • Я не зберігаю дані для входу в ~/.gitconfigокремі <proj>/.git/configфайли.
  • Я також не зберігаю нічого, пов'язаного з github ~/.netrc.
  • Я створив новий фіктивний архів: досі не вимагає від мене входу.

Я не зміг нічого знайти в архіві нотаток про випуск git .

Хтось знає, чи це нова поведінка git? Як відновити запит?


У вас є %HOME%\_netrcфайл із вашими обліковими даними? (як у stackoverflow.com/questions/11021803/… ) Або у вас активовано якесь кешування облікових даних? (як у stackoverflow.com/questions/6191985/… ) Або ви працюєте з GitHub для Windows?
VonC

Дякую. Я працюю над OS X. У мене є ~/.netrcфайл, але там немає нічого пов'язаного з github (забув це згадати, додавши його зараз). Тепер git config -lя бачу, що у мене є credential.helper=osxkeychainможливість. Дякую, я прочитаю сторінки. Не могли б ви розширити свій коментар як відповідь?
tompave

Коментар розширений як відповідь із посиланнями на посилання.
VonC

5
Я використовував git config --global --unset credential.helperі, git config --system --unset credential.helperі він повернув запит на вхід.
yoyo

Відповіді:


24

Зараз git config -lя бачу, що у мене є credential.helper=osxkeychainможливість

Це означає, що в даний час діє помічник з облікових даних (спочатку введений у 1.7.10), який автоматично кешує пароль для доступу до віддаленого сховища через HTTP.
(як у " GIT: Будь-яким способом встановити облікові дані за замовчуванням? ")

Ви можете вимкнути цю опцію повністю або лише для одного репо .


1
Дякую. це зайняло у мене деякий час, тому що з якихось причин варіант був у --systemфайлі конфігурації, а не в --globalодному. Все ще цікаво, як це ввімкнулось.
tompave

Ви встановили GitExtensions або будь-який інший клієнт, який увімкнув його? Я не пам’ятаю, як увімкнув його, поки не встановив GitExtensions.
RuntimeException

Мабуть, це може бути причиною. Демон кешу облікових даних. Не впевнений, що однакова причина в Windows. stackoverflow.com/a/15382950/15789
RuntimeException

1
@RuntimeException на Windows, за замовчуванням, облікові помічник є Microsoft Credential Manager (так, чи не демон): stackoverflow.com/a/42152514/6309
VonC

1
Дякую, це направило мене на правильний шлях. Я запустив інструмент доступу до брелока в OS X і просто видалив там усі матеріали github ... Вирішив проблему.
Шай Алмог,

125

Додайте прапор -v за допомогою команди git. напр git pull -v

v означає перевірка.


1
Працював і у мене. Дивно, що на сторінках git man нічого не згадується.
Джоао Ценура,

1
@joao Я бачив, як один із моїх колег використовував цю команду, і негайно запам'ятав її. Ніколи цього ніде не бачив документально. Це більше схоже на --verbose прапор, не впевнений, чому це працює :)
sapy

так . Це також привернуло мою увагу, схоже на багатослівник чи версію ... Але в суті це означає verify. Git має дивні номенклатури.
sapy

5
Сторінки з git версії 1.7.1 показують, що це -vозначає багатослівник git-pullіgit-fetch
пітер

8
Не зробив для мене абсолютно нічого. Нічого не підказував. Просто штовхнули.
Адвокат диявола

66

Це, швидше за все, тому, що у вас є кілька облікових записів, наприклад один приватний, один для роботи з GitHub.

РІШЕННЯ У Windows перейдіть у меню Пуск> Диспетчер облікових даних> Повноваження Windows і видаліть кредити GitHub, а потім спробуйте потягнути або натиснути ще раз, і вам буде запропоновано переввійти в GitHub

РІШЕННЯ OnMac , випустіть на терміналі наступне:

git remote set-url origin https://username@github.com/username/repo-name.git

шляхом заміни `` ім'я користувача '' на ваше ім'я користувача GitHub в обох місцях та надавши ім'я репозиторію GitHub.


1
це те, на що я шукав.
Хафіз Сіддік

2
чудово! Велике спасибі
Codiee

11

Жоден із тих не працював у мене. Я намагався клонувати каталог із приватного git-сервера і ввів свої облікові дані помилково, і тоді це не дозволило мені пробувати різні облікові дані при наступних спробах, це просто негайно помилилося з помилкою автентифікації.

Що вдалося, вказавши ім’я користувача ( mike-wise) в URL-адресі так:

   git clone https://mike-wise@collab.somewhere.net/someuser/somerepo.git


5

Оскільки питання було позначене як Github, додавання ще одного віддаленого лайку https_originта додавання httpsз'єднання може змусити вас завжди вводити пароль:

git remote add https_origin https://github.com/.../...

1
Це не спрацювало для мене. Я можу додати пульт дистанційного керування https, але там все одно написано "дозвіл відмовлено <ім'я користувача>", не підказуючи мені.
LondonRob,

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