Назад к блогу

Как решить проблемы аутентификации при клонировании Git с помощью персонального токена доступа (PAT)?

2024-10-243 минуты чтения

При работе над клонированием репозитория с сервера GitHub Enterprise я столкнулся с проблемой SSL. Когда я попытался клонировать репозиторий через HTTPS, Git запросил у меня учетные данные, но я не использовал обычное сочетание имени пользователя и пароля, поскольку вхожу в систему с помощью учетных данных Microsoft 365. Вот полный разбор проблемы и того, как я ее решил с помощью персонального токена доступа (PAT).

Проблема: SSL и запросы аутентификации

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

  1. Ошибка SSL-сертификата: Сервер GitHub Enterprise использовал самоподписанный SSL-сертификат, из-за чего Git прерывал операцию из-за ошибки проверки SSL-сертификата.
  2. Запрос аутентификации: Даже после обхода проблемы SSL Git запрашивал у меня имя пользователя и пароль. Поскольку я использую единый вход (SSO) с Microsoft 365, у меня не было традиционного имени пользователя и пароля для репозитория.

На этом этапе я не мог завершить операцию клонирования из-за самоподписанного SSL-сертификата и отсутствия стандартных учетных данных.

Шаг 1: Обход проблемы SSL-сертификата

Чтобы временно обойти проблему SSL-сертификата, я выполнил следующую команду Git, которая отключает проверку SSL:

git -c http.sslVerify=false clone https://yourcompany.domain/your-team/your-repo.git .

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

Шаг 2: Решение проблемы аутентификации с помощью персонального токена доступа (PAT)

Поскольку я входил в свою учетную запись GitHub Enterprise, используя учетные данные Microsoft 365 (через SSO), у меня не было обычного сочетания имени пользователя/пароля для предоставления при запросе. Решением было использовать персональный токен доступа (PAT), который GitHub предоставляет для безопасной аутентификации в таких случаях.

Что такое персональный токен доступа (PAT)?

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

Как сгенерировать PAT

  1. Войдите в свою учетную запись GitHub Enterprise.
  2. Перейдите в Настройки > Параметры разработчика > Персональные токены доступа.
  3. Нажмите Сгенерировать новый токен и выберите соответствующие разрешения (области). Для доступа к репозиторию обычно требуется область repo.
  4. Скопируйте сгенерированный токен (PAT) и сохраните его в безопасном месте (вы больше не сможете просмотреть его после этого).

Использование PAT для клонирования репозитория

Как только у меня появился персональный токен доступа, я вернулся в терминал. Когда Git запросил у меня имя пользователя, я ввел свой адрес электронной почты (связанный с входом в Office 365). Когда он запросил пароль, я вставил PAT вместо пароля:

Username for 'https://yourcompany.domain': [email protected]
Password for 'https://[email protected]@yourcompany.domain': <paste-your-PAT-here>

После этого операция клонирования прошла успешно, и у меня был доступ к репозиторию.

Категории: