Помічник облікових даних
Gitcito має справу з трьома різними видами секретів, і люди цілком закономірно вважають, що це одне й те саме:
| Зберігається в | |
|---|---|
| API-токени хостингу — PR, задачі, перевірки CI | Gitcito, у keychain вашої ОС |
Транспорт git@… |
Ваш SSH-ключ, через системний ssh-агент |
Транспорт https:// |
Власний помічник облікових даних git |
Третій ніхто не вважає функцією, доки він не зламається, — а тоді він породжує дві найпоширеніші скарги в git: чому воно знову мене питає? і чому воно досі надсилає токен, який я відкликав?
⌘K → Помічник облікових даних.

На що ви дивитесь
Кожен налаштований credential.helper — у тій області, звідки він походить:
system, global, а потім цей репозиторій. Помічники складаються стосом:
git питає кожного по черзі, і той, що заданий на рівні репозиторію, не заміняє
глобального.
Кожен перевіряється на вашій машині:
| Позначка | Означає |
|---|---|
| готовий | Програма помічника існує і запуститься |
| не встановлений | Налаштований, але програми немає — кожен запит зводиться до того, що ви вводите пароль знову |
| паролі у звичайному файлі | Помічник store (дивіться нижче) |
Правила для окремих хостів показують секції credential.<url>.*. Вони мають
перевагу над звичайним налаштуванням для URL, яким відповідають, і зазвичай саме
вони є відповіддю на питання «чому цей один хост поводиться інакше».
Як обрати
| Помічник | Куди потрапляє пароль |
|---|---|
osxkeychain |
macOS Keychain — зашифровано, для кожного користувача окремо |
manager |
Git Credential Manager (Windows, кросплатформний) |
wincred |
Windows Credential Manager |
libsecret |
Служба секретів Linux (GNOME Keyring, KWallet) |
cache |
Пам’ять, на 15 хвилин. На диску нічого |
store |
Звичайний файл у вашій домашній теці. Без шифрування |
Gitcito пропонує те, що справді встановлене на цій машині, позначає той варіант, який пасує вашій ОС, і робить решту сірою.
Область важлива. Для кожного репозиторію пише у вашу глобальну конфігурацію — саме цього ви майже завжди й хочете; лише для цього репозиторію призначене для того дивного репозиторію, який автентифікується десь інде.
Помічник store і ~/.git-credentials
store записує рядки https://user:password@host у ~/.git-credentials
відкритим текстом, без жодного шифрування. Прочитати їх може будь-що, що
працює від вашого імені: скрипт, postinstall якоїсь залежності, будь-що.
Якщо такий файл існує, ця сторінка так і скаже й порахує записи. Вона ніколи їх не показує — саме кількість тут і є суттю, а прочитати вміст, щоб його показати, було б тією самою помилкою.
Якщо ви знайшли такий файл і не мали цього на увазі: виберіть тут справжнього помічника, потім видаліть файл і один раз пройдіть автентифікацію заново.
Як змусити забути збережені дані
Коли токен відкликано чи змінено, помічник і далі віддає старий, а кожен пуш
падає з 401, який нічого не називає. Забути просить налаштованого помічника
стерти свій запис для цього хоста — це git credential reject, власний
задокументований шлях git.
Дорогою нічого не читається: Gitcito ніколи не викликає git credential fill —
команду, яка вивела б чинний пароль у стандартний потік.
Наступний пуш спитає вас один раз, і помічник збереже нову відповідь.
Обмеження, про які варто знати
- Це сховище git, а не Gitcito. Змінюючи його, ви змінюєте і те, що робить ваш термінал, — у цьому й суть, але про це варто знати до того, як міняти.
- Помічники системного рівня показані, але не редаговані. Вони живуть у конфігурації, писати в яку може лише адміністратор.
- Gitcito не може перелічити те, що зберігає помічник. Жодний API облікових даних не показує цього, не віддавши самі секрети, тож діалог повідомляє про конфігурацію та стирає на запит — і більше нічого.
- Токен, який ви дали Gitcito, — окрема річ. Відкликання одного не чіпає іншого; про бік keychain дивіться в безпеці.
Дивіться також: Безпека · SSH-ключі · Синхронізація