Credential
- Механизм Git для хранения и использования учетных данных пользователя при работе с удаленными репозиториями.
Зачем это нужно
Git при работе с удаленным репозиторием требует учетные данные от пользователя для взаимодействия с ним.
Настройки credentials позволяют избежать многократного ввода этих учетных данных. Обычно это:
-
логин
-
пароль
-
personal access token
-
access token от GitHub / GitLab / Bitbucket
Какие бывают способы авторизации в удаленном репозитории
HTTPS авторизация
Самый простой способ
Пример ссылки
Для взаимодействия с репозиторием через HTTPS требуются следующие данные от пользователя:- логин
- Personal Access Token (PAT)
PAT
токен заменяет пароль
Принять к сведению
Все эти данные требуется вводить постоянно при использовании команд
SSH
Более профессиональное решение
Пример ссылки
Авторизация происходит через SSH-ключи.Проверка типа подключения
Посмотреть remote URL:
Пример выводов:
Как GIT хранит credentials
Git сам не хранит токены напрямую. Для этого используются credential helpers.
Посмотреть текущий helper:
Основные credential.helper
Store
Сохраняет credentials в файл: ПримерМинусы
- токены лежат открытым текстом
- security scanners ругаются
- можно случайно закоммитить
- небезопасно
Предупреждение
Использовать store не рекомендуется.
Cache
Credentials хранится временно в памяти.
После истечения timeout или перезапуска системы данные исчезают.
Настройка timeout:
osxkeychain (macOS)
Хранит токены в macOS Keychain.
Плюсы
- безопасно
- нет .git-credentials
- удобно
- интеграция с системой
Рекомендуемый вариант для macOS.
Как удалить credential helper
Удалить helper
Удалить файлПолезные команды
Посмотреть helper
Посмотреть все crenedtial настройкиРекомендация
Практический совет
Лучший вариант
Для постоянной работы с Git рекомендуется использовать SSH-авторизацию вместо HTTPS.
Что это дает:
- Безопаснее чем HTTP
- Удобство
- Не требует постоянного ввода токенов
- Не создает .git-credentials