Как настроить конфигурацию личного токена доступа Git

GitGitBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

gh auth login

Для прохождения этого Lab (лабораторной работы) требуется подключение к интернету, поэтому запустить виртуальную машину могут только пользователи LabEx Pro. Перейдите на тариф Pro.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/GitHubIntegrationToolsGroup(["GitHub Integration Tools"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/SetupandConfigGroup -.-> git/git("Show Version") git/GitHubIntegrationToolsGroup -.-> git/cli_config("Configure CLI") subgraph Lab Skills git/config -.-> lab-393036{{"Как настроить конфигурацию личного токена доступа Git"}} git/git -.-> lab-393036{{"Как настроить конфигурацию личного токена доступа Git"}} git/cli_config -.-> lab-393036{{"Как настроить конфигурацию личного токена доступа Git"}} end

Понимание личных токенов доступа Git

Git - это широко используемая распределенная система управления версиями, которая позволяет разработчикам сотрудничать над проектами, отслеживать изменения и управлять репозиториями кода. Неотъемлемой частью эффективного использования Git является безопасная аутентификация при взаимодействии с удаленными репозиториями.

Что такое личные токены доступа?

Личные токены доступа (Personal Access Tokens, PATs) - это учетные данные аутентификации, которые позволяют вам безопасно получать доступ к своим Git-репозиториям без использования имени пользователя и пароля. Они работают аналогично паролям, но обладают рядом преимуществ:

  1. Улучшенная безопасность: PATs можно отзывать или обновлять без изменения основного пароля учетной записи.
  2. Точное управление разрешениями: Вы можете ограничить действия, которые токен может выполнять, назначив ему определенные области доступа (scopes).
  3. Поддержка автоматизации: PATs позволяют программно получать доступ с помощью скриптов, CI/CD-пайплайнов и других инструментов.
  4. Совместимость с многофакторной аутентификацией: PATs работают без проблем с учетными записями, для которых включена многофакторная аутентификация (MFA).

Почему использовать личные токены доступа?

Многие платформы для хостинга Git, такие как GitHub, GitLab и Bitbucket, постепенно отказываются от аутентификации на основе пароля для операций с Git. Это переход обусловлен в первую очередь соображениями безопасности. Личные токены доступа предоставляют более безопасную альтернативу, которая снижает риски, связанные с долгоживущими учетными данными с широким доступом.

Когда вы используете личный токен доступа вместо пароля:

  • Вы можете ограничить возможности токена только тем, что действительно необходимо.
  • Вы можете создать несколько токенов для разных целей.
  • Вы можете отзывать отдельные токены без влияния на другие.
  • Вы можете лучше вести аудит доступа и использования.

В следующих шагах мы создадим личный токен доступа и настроим Git для его использования в аутентификации.

Создание личного токена доступа на GitHub

В этом шаге мы создадим личный токен доступа на GitHub. Процесс аналогичен на других платформах Git, таких как GitLab или Bitbucket, с незначительными различиями в пользовательском интерфейсе.

Создание токена на GitHub

Следуйте этим шагам, чтобы создать личный токен доступа:

  1. Откройте терминал и установите инструмент GitHub CLI, который предоставляет удобный способ взаимодействия с GitHub:

    sudo apt-get update
    sudo apt-get install -y gh
  2. Аутентифицируйтесь на GitHub, выполнив команду:

    gh auth login
gh auth login

Следуйте интерактивным подсказкам:

  • Выберите "GitHub.com", когда вас спросят о учетной записи.
  • Выберите "HTTPS" в качестве предпочтительного протокола.
  • Подтвердите, что вы хотите аутентифицироваться с помощью своих учетных данных GitHub.
  • Выберите "Войти с помощью веб-браузера", когда вас спросят о методе аутентификации.

Будет отображён одноразовый код. GitHub откроется в вашем браузере, или вас попросят перейти по URL-адресу и ввести этот код.

  1. После успешной аутентификации создайте новый личный токен доступа:

    gh auth token

    Эта команда отобразит ваш текущий токен аутентификации. Скопируйте этот токен и сохраните его в безопасном месте, так как нам он понадобится в следующих шагах.

    Если вы предпочитаете создать токен с определенными областями доступа (scopes) напрямую, вы можете использовать:

    gh auth refresh -s repo,read:org
    gh auth token

    Это создаст токен с доступом на чтение репозиториев и организаций.

  2. В качестве альтернативы вы можете создать токен непосредственно на веб-сайте GitHub:

gh auth login
  • Перейдите на GitHub по адресу https://github.com
  • Нажмите на свою аватарку в правом верхнем углу
  • Выберите "Settings" (Настройки)
  • Прокрутите страницу вниз и нажмите на "Developer settings" (Настройки разработчика) в левой боковой панели
  • Нажмите на "Personal access tokens" (Личные токены доступа), а затем на "Tokens (classic)" (Токены (классические))
  • Нажмите "Generate new token" (Создать новый токен) и выберите "Generate new token (classic)" (Создать новый токен (классический))
  • Присвойте вашему токену описательное имя, например, "Git CLI access" (Доступ через Git CLI)
  • Выберите соответствующие области доступа (минимум, выберите "repo" для доступа к репозиториям)
  • Нажмите "Generate token" (Создать токен)
  • Скопируйте сгенерированный токен и сохраните его в безопасном месте

Не забудьте сохранить ваш токен в безопасном месте, так как GitHub покажет его только один раз. Если вы потеряете его, вам придется создать новый.

Настройка Git для использования личного токена доступа

Теперь, когда вы создали личный токен доступа, вам нужно настроить Git для его использования при аутентификации при взаимодействии с удаленными репозиториями. Существует несколько способов сделать это.

Способ 1: Использование помощника по учетным данным Git

Помощник по учетным данным Git позволяет Git запоминать ваши учетные данные, так что вам не нужно вводить их каждый раз.

  1. Откройте терминал и перейдите в каталог проекта:

    cd ~/project
  2. Настройте Git для использования помощника по учетным данным для хранения ваших учетных данных:

    git config --global credential.helper store

    Примечание: Это сохранит ваши учетные данные на диске в незашифрованном виде. Для более безопасного варианта вы можете использовать кэш-помощник, который временно хранит учетные данные в памяти:

    git config --global credential.helper 'cache --timeout=3600'

    Это сохранит ваши учетные данные в памяти на 1 час (3600 секунд).

  3. Создайте пример репозитория Git для проверки вашей настройки:

    mkdir -p ~/project/test-repo
    cd ~/project/test-repo
    git init
  4. Добавьте удаленный репозиторий (вам нужно заменить yourusername на ваше фактическое имя пользователя на GitHub):

    git remote add origin https://github.com/yourusername/test-repo.git
  5. В следующий раз, когда Git потребует аутентификации (например, при отправке или получении изменений), вас попросят ввести учетные данные. Укажите ваше имя пользователя на GitHub и используйте личный токен доступа в качестве пароля.

Способ 2: Использование аутентификации на основе URL

Другой подход - встроить ваш токен непосредственно в URL-адрес репозитория:

  1. В каталоге проекта настройте URL-адрес удаленного репозитория с использованием вашего токена:

    git remote set-url origin https://[email protected]/yourusername/test-repo.git

    Замените YOUR_TOKEN на ваш фактический личный токен доступа и yourusername на ваше имя пользователя на GitHub.

  2. Создайте тестовый файл, чтобы проверить настройку:

    echo "## Test Repository" > README.md
    git add README.md
    git commit -m "Initial commit"

Способ 3: Использование файла конфигурации Git

Вы также можете напрямую отредактировать файл конфигурации Git:

  1. Создайте или отредактируйте файл .git/config в вашем репозитории:

    nano ~/project/test-repo/.git/config
  2. Обновите URL-адрес для удаленного репозитория origin, чтобы включить ваш токен:

    [remote "origin"]
        url = https://[email protected]/yourusername/test-repo.git
        fetch = +refs/heads/*:refs/remotes/origin/*

    Замените YOUR_TOKEN на ваш фактический личный токен доступа и yourusername на ваше имя пользователя на GitHub.

  3. Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите, нажав Ctrl+X.

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

Тестирование личного токена доступа

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

Создание тестового репозитория на GitHub

Сначала создадим тестовый репозиторий на GitHub с использованием GitHub CLI:

  1. Создайте новый репозиторий на GitHub:

    cd ~/project
    gh repo create test-pat-repo --private --clone
    cd test-pat-repo

    Эта команда создает новый приватный репозиторий с именем "test-pat-repo" и клонирует его на вашу локальную машину.

Тестирование базовых операций с Git

Теперь выполним несколько базовых операций с Git, чтобы убедиться, что ваш личный токен доступа работает корректно:

  1. Создайте простой файл README:

    echo "## Test PAT Repository" > README.md
    echo "This repository is used to test Personal Access Token configuration." >> README.md
  2. Добавьте и зафиксируйте файл:

    git add README.md
    git commit -m "Add README file"
  3. Отправьте изменения на GitHub:

    git push -u origin main

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

  4. Сделайте еще одно изменение, чтобы проверить сохраненные учетные данные:

    echo "### Additional Information" >> README.md
    echo "This section contains additional information about the repository." >> README.md
    git add README.md
    git commit -m "Update README with additional information"
    git push

    Вторая отправка должна пройти без запросов на аутентификацию, подтверждая, что ваш токен используется правильно.

Проверка доступа к репозиториям

Для дальнейшего подтверждения правильной работы токена вы можете вывести список своих репозиториев:

gh repo list --limit 5

Эта команда должна отобразить список ваших репозиториев на GitHub, включая тестовый репозиторий, который мы только что создали. Если эта команда выполнится успешно, это подтверждает, что ваш личный токен доступа имеет правильные разрешения для доступа к репозиториям.

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

Управление и обновление личных токенов доступа

Личные токены доступа должны обрабатываться с той же осторожностью, что и пароли. В этом последнем шаге мы обсудим рекомендации по управлению и обновлению токенов для обеспечения безопасности.

Просмотр списка личных токенов доступа

Чтобы просмотреть существующие личные токены доступа на GitHub:

  1. С использованием GitHub CLI:

    gh auth status

    Эта команда отображает информацию о текущем статусе аутентификации, включая используемый токен.

  2. В качестве альтернативы вы можете просмотреть все свои токены через веб-интерфейс GitHub:

    • Перейдите на GitHub.com и войдите в свою учетную запись.
    • Нажмите на свою аватарку в правом верхнем углу.
    • Выберите "Settings" (Настройки).
    • Перейдите в раздел "Developer settings" (Настройки разработчика) > "Personal access tokens" (Личные токены доступа) > "Tokens (classic)" (Токены (классические)).

Лучшие практики безопасности токенов

Для обеспечения безопасности личных токенов доступа следуйте этим рекомендациям:

  1. Ограничьте области доступа токена: Предоставляйте только минимальные разрешения, необходимые для предполагаемого использования токена.

  2. Используйте описательные имена: Присваивайте токенам осмысленные имена, которые указывают на их назначение и использование.

  3. Установите даты истечения срока действия: Для неключевых токенов установите дату истечения срока действия, чтобы обеспечить регулярное обновление.

    Чтобы создать токен с датой истечения срока действия с использованием GitHub CLI:

    gh auth refresh -s repo,read:org --expiry 30d
    gh auth token

    Это создаст токен, который истекает через 30 дней.

  4. Регулярно проводите аудит токенов: Периодически проверяйте свои токены и отзывайте любые, которые больше не нужны.

  5. Безопасно храните токены: Никогда не храните токены в публичных репозиториях, незашифрованных файлах или не делитесь ими с другими.

  6. Используйте переменные окружения: При использовании токенов в скриптах или приложениях храните их как переменные окружения, а не в виде жестко закодированных значений.

    Например:

    export GITHUB_TOKEN=your_token_here

Отзыв личного токена доступа

Если вы подозреваете, что токен был скомпрометирован или он больше не нужен, немедленно отзывите его:

  1. С использованием GitHub CLI (замените TOKEN на ваш токен):

    gh auth logout

    Это выйдет из учетной записи и аннулирует текущий токен.

  2. Через веб-интерфейс GitHub:

    • Перейдите на GitHub.com и войдите в свою учетную запись.
    • Перейдите в раздел "Settings" (Настройки) > "Developer settings" (Настройки разработчика) > "Personal access tokens" (Личные токены доступа) > "Tokens (classic)" (Токены (классические)).
    • Найдите токен, который вы хотите отзывать.
    • Нажмите "Delete" (Удалить) и подтвердите действие.

Обновление токенов

Регулярное обновление токенов - хорошая практика безопасности. Вот как обновить свои токены:

  1. Создайте новый токен с теми же разрешениями, что и старый.
  2. Обновите свои приложения и настройки для использования нового токена.
  3. Проверьте, что все работает с новым токеном.
  4. Отзовите старый токен.

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

## Generate a new token
gh auth refresh -s repo,read:org
NEW_TOKEN=$(gh auth token)

## Update your Git remote URL with the new token
git remote set-url origin https://${NEW_TOKEN}@github.com/yourusername/your-repo.git

## Verify it works
git fetch

## Revoke the old token through GitHub website
echo "Remember to revoke your old token in GitHub settings"

Следуя этим рекомендациям, вы можете обеспечить безопасный доступ к своим Git-репозиториям, минимизируя риск несанкционированного доступа.

Резюме

В этом руководстве вы узнали, как эффективно работать с личными токенами доступа Git. Вот краткое изложение того, что вы достигли:

  1. Поняли важность и преимущества использования личных токенов доступа для аутентификации в Git.
  2. Создали личный токен доступа на GitHub с использованием как CLI, так и веб-интерфейса.
  3. Настроили Git для использования вашего личного токена доступа при операциях с репозиториями.
  4. Протестировали настройку токена, выполнив базовые операции с Git.
  5. Узнали рекомендации по управлению, обеспечению безопасности и обновлению токенов.

Используя личные токены доступа вместо паролей, вы повысили безопасность своей работы с Git. Теперь вы можете создавать токены с определенными разрешениями, ограничивать их срок действия и отзывать их при необходимости, не затрагивая основные учетные данные вашей учетной записи.

Не забывайте эти важные моменты:

  • Всегда используйте минимально необходимые разрешения для своих токенов.
  • Безопасно храните токены и никогда не делитесь ими.
  • Регулярно обновляйте токены, особенно для чувствительных репозиториев.
  • Незамедлительно отзывайте неиспользуемые или скомпрометированные токены.

Следуя этим рекомендациям, вы можете обеспечить безопасный доступ к своим Git-репозиториям, минимизируя риски безопасности.