Git Credential Manager Core – это кроссплатформенный инструмент, который может стать альтернативой традиционной HTTPS- или SSH-аутентификации для Git. Планируется, что в будущем он заменит существующие утилиты Git-аутентификации для Windows, macOS и Linux.
Зачем нужен GCM Core
Разработчики проходят процедуру аутентификации несколько раз в день, особенно если развивают не один проект. Когда вы создаете код совместно с коллегами и используете GitHub для хранения репозиториев, аутентификация позволяет подтвердить, что у вас есть права на обновление ветки с помощью git push. Она же нужна, чтобы получить разрешение на чтение кода в закрытых коммерческих проектах во время выполнения команд git fetch или git pull.
GCM Core – бесплатный менеджер учетных записей с открытым исходным кодом, долгосрочная цель которого объединить для всех платформ согласованный опыт аутентификации продуктов Git Credential Manager для Windows (GCM) на основе .NET Framework и Git Credential Manager для Mac и Linux (Java GCM) на основе Java.
При этом GCM Core призван упростить аутентификацию на Git-серверах, но не потерять в безопасности, поскольку реализует более надежные алгоритмы аутентификации, чем те, что используются популярными утилитами аутентификации сейчас.
На данный момент в системе контроля версий Git доступно два механизма аутентификации для доступа к удаленным компьютерам:
- При использовании HTTP(S) Git отправляет имя пользователя и пароль или токен личного доступа (PAT – personal access token) через заголовки HTTP. Этот способ проще, но он не так надежен.
- При использовании SSH вам нужно представить серверу с Git открытый SSH-ключ вашей машины. Такой способ безопаснее, но с настройкой аутентификации по SSH часто возникают проблемы.
В отличие от популярных утилит вроде wincred, osxkeychain и gnome-keyring поддерживающих только однофакторную аутентификацию по HTTP, протокол GCM Core умеет работать с двухфакторной аутентификацией.
Двухфакторная аутентификация поддерживается в GCM Core не только для GitHub, но и, к примеру, для Bitbucket, DevOps Azure и Azure DevOps Server (ранее этот продукт назывался Team Foundation Server).
Где загрузить
GCM Core уже доступен для Windows и macOS. В будущем появится и поддержка Linux, но пока конкретных сроков разработчики не называют.
В репозитории GitHub можно загрузить версию GCM Core для предварительного ознакомления. Если в ваших проектах действуют повышенные требования к безопасности, разработчики рекомендуют продолжать использовать традиционную аутентификацию по протоколу SSH.
В Windows для двухфакторной аутентификации доступен традиционный графический интерфейс. После того, как вы впервые пройдете аутентификацию, система создаст токен и сохранит его в диспетчере учетных данных Windows.
В следующую версию инсталлера Git для Windows обещают включить GCM Core как экспериментальную опцию. Со временем утилита будет устанавливаться по умолчанию. Она заменит Git Credential Manager для Windows и сможет подхватить учетные записи, которые были настроены ранее.
В macOS утилита GCM Core доступна из пакета инструментов для установки Microsoft Homebrew Tap. После авторизации учетные данные хранятся в пользовательских хранилищах Keychain. Для macOS пока используется только консольный интерфейс . Графический появится в ближайшее время.
Отметим также, что на GitHub недавно объединили документацию. Теперь официальные мануалы доступны на едином портале.