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

Для прохождения этого Lab (лабораторной работы) требуется подключение к интернету, поэтому запустить виртуальную машину могут только пользователи LabEx Pro. Перейдите на тариф Pro.
Понимание личных токенов доступа Git
Git - это широко используемая распределенная система управления версиями, которая позволяет разработчикам сотрудничать над проектами, отслеживать изменения и управлять репозиториями кода. Неотъемлемой частью эффективного использования Git является безопасная аутентификация при взаимодействии с удаленными репозиториями.
Что такое личные токены доступа?
Личные токены доступа (Personal Access Tokens, PATs) - это учетные данные аутентификации, которые позволяют вам безопасно получать доступ к своим Git-репозиториям без использования имени пользователя и пароля. Они работают аналогично паролям, но обладают рядом преимуществ:
- Улучшенная безопасность: PATs можно отзывать или обновлять без изменения основного пароля учетной записи.
- Точное управление разрешениями: Вы можете ограничить действия, которые токен может выполнять, назначив ему определенные области доступа (scopes).
- Поддержка автоматизации: PATs позволяют программно получать доступ с помощью скриптов, CI/CD-пайплайнов и других инструментов.
- Совместимость с многофакторной аутентификацией: PATs работают без проблем с учетными записями, для которых включена многофакторная аутентификация (MFA).
Почему использовать личные токены доступа?
Многие платформы для хостинга Git, такие как GitHub, GitLab и Bitbucket, постепенно отказываются от аутентификации на основе пароля для операций с Git. Это переход обусловлен в первую очередь соображениями безопасности. Личные токены доступа предоставляют более безопасную альтернативу, которая снижает риски, связанные с долгоживущими учетными данными с широким доступом.
Когда вы используете личный токен доступа вместо пароля:
- Вы можете ограничить возможности токена только тем, что действительно необходимо.
- Вы можете создать несколько токенов для разных целей.
- Вы можете отзывать отдельные токены без влияния на другие.
- Вы можете лучше вести аудит доступа и использования.
В следующих шагах мы создадим личный токен доступа и настроим Git для его использования в аутентификации.
Создание личного токена доступа на GitHub
В этом шаге мы создадим личный токен доступа на GitHub. Процесс аналогичен на других платформах Git, таких как GitLab или Bitbucket, с незначительными различиями в пользовательском интерфейсе.
Создание токена на GitHub
Следуйте этим шагам, чтобы создать личный токен доступа:
Откройте терминал и установите инструмент GitHub CLI, который предоставляет удобный способ взаимодействия с GitHub:
sudo apt-get update sudo apt-get install -y ghАутентифицируйтесь на GitHub, выполнив команду:
gh auth login

Следуйте интерактивным подсказкам:
- Выберите "GitHub.com", когда вас спросят о учетной записи.
- Выберите "HTTPS" в качестве предпочтительного протокола.
- Подтвердите, что вы хотите аутентифицироваться с помощью своих учетных данных GitHub.
- Выберите "Войти с помощью веб-браузера", когда вас спросят о методе аутентификации.
Будет отображён одноразовый код. GitHub откроется в вашем браузере, или вас попросят перейти по URL-адресу и ввести этот код.
После успешной аутентификации создайте новый личный токен доступа:
gh auth tokenЭта команда отобразит ваш текущий токен аутентификации. Скопируйте этот токен и сохраните его в безопасном месте, так как нам он понадобится в следующих шагах.
Если вы предпочитаете создать токен с определенными областями доступа (scopes) напрямую, вы можете использовать:
gh auth refresh -s repo,read:org gh auth tokenЭто создаст токен с доступом на чтение репозиториев и организаций.
В качестве альтернативы вы можете создать токен непосредственно на веб-сайте GitHub:

- Перейдите на 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 запоминать ваши учетные данные, так что вам не нужно вводить их каждый раз.
Откройте терминал и перейдите в каталог проекта:
cd ~/projectНастройте Git для использования помощника по учетным данным для хранения ваших учетных данных:
git config --global credential.helper storeПримечание: Это сохранит ваши учетные данные на диске в незашифрованном виде. Для более безопасного варианта вы можете использовать кэш-помощник, который временно хранит учетные данные в памяти:
git config --global credential.helper 'cache --timeout=3600'Это сохранит ваши учетные данные в памяти на 1 час (3600 секунд).
Создайте пример репозитория Git для проверки вашей настройки:
mkdir -p ~/project/test-repo cd ~/project/test-repo git initДобавьте удаленный репозиторий (вам нужно заменить
yourusernameна ваше фактическое имя пользователя на GitHub):git remote add origin https://github.com/yourusername/test-repo.gitВ следующий раз, когда Git потребует аутентификации (например, при отправке или получении изменений), вас попросят ввести учетные данные. Укажите ваше имя пользователя на GitHub и используйте личный токен доступа в качестве пароля.
Способ 2: Использование аутентификации на основе URL
Другой подход - встроить ваш токен непосредственно в URL-адрес репозитория:
В каталоге проекта настройте URL-адрес удаленного репозитория с использованием вашего токена:
git remote set-url origin https://YOUR_TOKEN@github.com/yourusername/test-repo.gitЗамените
YOUR_TOKENна ваш фактический личный токен доступа иyourusernameна ваше имя пользователя на GitHub.Создайте тестовый файл, чтобы проверить настройку:
echo "## Test Repository" > README.md git add README.md git commit -m "Initial commit"
Способ 3: Использование файла конфигурации Git
Вы также можете напрямую отредактировать файл конфигурации Git:
Создайте или отредактируйте файл
.git/configв вашем репозитории:nano ~/project/test-repo/.git/configОбновите URL-адрес для удаленного репозитория
origin, чтобы включить ваш токен:[remote "origin"] url = https://YOUR_TOKEN@github.com/yourusername/test-repo.git fetch = +refs/heads/*:refs/remotes/origin/*Замените
YOUR_TOKENна ваш фактический личный токен доступа иyourusernameна ваше имя пользователя на GitHub.Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите, нажав Ctrl+X.
По соображениям безопасности способ с использованием помощника по учетным данным (Способ 1) обычно рекомендуется для большинства пользователей, так как он позволяет избежать прямого хранения вашего токена в файлах конфигурации.
Тестирование личного токена доступа
После настройки Git для использования личного токена доступа важно проверить, что аутентификация работает корректно. В этом шаге мы протестируем токен, выполнив общие операции с Git.
Создание тестового репозитория на GitHub
Сначала создадим тестовый репозиторий на GitHub с использованием GitHub CLI:
Создайте новый репозиторий на GitHub:
cd ~/project gh repo create test-pat-repo --private --clone cd test-pat-repoЭта команда создает новый приватный репозиторий с именем "test-pat-repo" и клонирует его на вашу локальную машину.
Тестирование базовых операций с Git
Теперь выполним несколько базовых операций с Git, чтобы убедиться, что ваш личный токен доступа работает корректно:
Создайте простой файл README:
echo "## Test PAT Repository" > README.md echo "This repository is used to test Personal Access Token configuration." >> README.mdДобавьте и зафиксируйте файл:
git add README.md git commit -m "Add README file"Отправьте изменения на GitHub:
git push -u origin mainЕсли ваш личный токен доступа настроен правильно, отправка должна пройти успешно без запроса пароля. Если вы используете помощник по учетным данным и это ваша первая отправка, вас может попросить ввести имя пользователя и токен, которые затем будут сохранены для дальнейшего использования.
Сделайте еще одно изменение, чтобы проверить сохраненные учетные данные:
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:
С использованием GitHub CLI:
gh auth statusЭта команда отображает информацию о текущем статусе аутентификации, включая используемый токен.
В качестве альтернативы вы можете просмотреть все свои токены через веб-интерфейс GitHub:
- Перейдите на GitHub.com и войдите в свою учетную запись.
- Нажмите на свою аватарку в правом верхнем углу.
- Выберите "Settings" (Настройки).
- Перейдите в раздел "Developer settings" (Настройки разработчика) > "Personal access tokens" (Личные токены доступа) > "Tokens (classic)" (Токены (классические)).
Лучшие практики безопасности токенов
Для обеспечения безопасности личных токенов доступа следуйте этим рекомендациям:
Ограничьте области доступа токена: Предоставляйте только минимальные разрешения, необходимые для предполагаемого использования токена.
Используйте описательные имена: Присваивайте токенам осмысленные имена, которые указывают на их назначение и использование.
Установите даты истечения срока действия: Для неключевых токенов установите дату истечения срока действия, чтобы обеспечить регулярное обновление.
Чтобы создать токен с датой истечения срока действия с использованием GitHub CLI:
gh auth refresh -s repo,read:org --expiry 30d gh auth tokenЭто создаст токен, который истекает через 30 дней.
Регулярно проводите аудит токенов: Периодически проверяйте свои токены и отзывайте любые, которые больше не нужны.
Безопасно храните токены: Никогда не храните токены в публичных репозиториях, незашифрованных файлах или не делитесь ими с другими.
Используйте переменные окружения: При использовании токенов в скриптах или приложениях храните их как переменные окружения, а не в виде жестко закодированных значений.
Например:
export GITHUB_TOKEN=your_token_here
Отзыв личного токена доступа
Если вы подозреваете, что токен был скомпрометирован или он больше не нужен, немедленно отзывите его:
С использованием GitHub CLI (замените
TOKENна ваш токен):gh auth logoutЭто выйдет из учетной записи и аннулирует текущий токен.
Через веб-интерфейс GitHub:
- Перейдите на GitHub.com и войдите в свою учетную запись.
- Перейдите в раздел "Settings" (Настройки) > "Developer settings" (Настройки разработчика) > "Personal access tokens" (Личные токены доступа) > "Tokens (classic)" (Токены (классические)).
- Найдите токен, который вы хотите отзывать.
- Нажмите "Delete" (Удалить) и подтвердите действие.
Обновление токенов
Регулярное обновление токенов - хорошая практика безопасности. Вот как обновить свои токены:
- Создайте новый токен с теми же разрешениями, что и старый.
- Обновите свои приложения и настройки для использования нового токена.
- Проверьте, что все работает с новым токеном.
- Отзовите старый токен.
Для автоматических процессов рассмотрите возможность использования переменных окружения или безопасных хранилищ для хранения токенов, чтобы упростить обновление.
## 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. Вот краткое изложение того, что вы достигли:
- Поняли важность и преимущества использования личных токенов доступа для аутентификации в Git.
- Создали личный токен доступа на GitHub с использованием как CLI, так и веб-интерфейса.
- Настроили Git для использования вашего личного токена доступа при операциях с репозиториями.
- Протестировали настройку токена, выполнив базовые операции с Git.
- Узнали рекомендации по управлению, обеспечению безопасности и обновлению токенов.
Используя личные токены доступа вместо паролей, вы повысили безопасность своей работы с Git. Теперь вы можете создавать токены с определенными разрешениями, ограничивать их срок действия и отзывать их при необходимости, не затрагивая основные учетные данные вашей учетной записи.
Не забывайте эти важные моменты:
- Всегда используйте минимально необходимые разрешения для своих токенов.
- Безопасно храните токены и никогда не делитесь ими.
- Регулярно обновляйте токены, особенно для чувствительных репозиториев.
- Незамедлительно отзывайте неиспользуемые или скомпрометированные токены.
Следуя этим рекомендациям, вы можете обеспечить безопасный доступ к своим Git-репозиториям, минимизируя риски безопасности.



