Как решить проблемы аутентификации при клонировании Git с помощью персонального токена доступа (PAT)?
При работе над клонированием репозитория с сервера GitHub Enterprise я столкнулся с проблемой SSL. Когда я попытался клонировать репозиторий через HTTPS, Git запросил у меня учетные данные, но я не использовал обычное сочетание имени пользователя и пароля, поскольку вхожу в систему с помощью учетных данных Microsoft 365. Вот полный разбор проблемы и того, как я ее решил с помощью персонального токена доступа (PAT).
Проблема: SSL и запросы аутентификации
Когда я впервые попытался клонировать репозиторий через HTTPS, я столкнулся с двумя основными проблемами:
- Ошибка SSL-сертификата: Сервер GitHub Enterprise использовал самоподписанный SSL-сертификат, из-за чего Git прерывал операцию из-за ошибки проверки SSL-сертификата.
- Запрос аутентификации: Даже после обхода проблемы 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
- Войдите в свою учетную запись GitHub Enterprise.
- Перейдите в Настройки > Параметры разработчика > Персональные токены доступа.
- Нажмите Сгенерировать новый токен и выберите соответствующие разрешения (области). Для доступа к репозиторию обычно требуется область
repo
. - Скопируйте сгенерированный токен (PAT) и сохраните его в безопасном месте (вы больше не сможете просмотреть его после этого).
Использование PAT для клонирования репозитория
Как только у меня появился персональный токен доступа, я вернулся в терминал. Когда Git запросил у меня имя пользователя, я ввел свой адрес электронной почты (связанный с входом в Office 365). Когда он запросил пароль, я вставил PAT вместо пароля:
Username for 'https://yourcompany.domain': [email protected]
Password for 'https://[email protected]@yourcompany.domain': <paste-your-PAT-here>
После этого операция клонирования прошла успешно, и у меня был доступ к репозиторию.