Поиск по сайту:

Как настроить токены личного доступа HTTPS для аутентификации Github


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

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

Github по-прежнему рекомендует более простые в использовании конечные точки HTTPS для доступа к репозиториям, но их безопасность на основе пароля является серьезным недостатком. Вот почему, если вы недавно пытались отправить или получить код, используя пароль своей учетной записи, вы могли получить следующую ошибку:

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

Командная строка Git здесь немного вводит в заблуждение, потому что она запрашивает ваш «пароль», но Git хочет, чтобы вы использовали нечто, называемое токеном личного доступа (PAT). Он работает во многом как вторичный пароль, за исключением того, что он уникален, более надежен и может иметь более конкретные разрешения, которые позволяют безопасно предоставлять доступ к вашей учетной записи.

Вы используете PAT точно так же, как пароли — вместо того, чтобы вводить пароль своей учетной записи для git, вы вводите PAT. Вы также можете кэшировать токен навсегда, чтобы вам не приходилось вводить его постоянно. Этот токен также можно использовать для доступа к Github API, но для большинства людей это не обязательно.

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

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

Настройка PAT потребует от вас создания нового из настроек Github и переключения ваших локальных репозиториев на их использование. Перейдите в настройки личного кабинета, чтобы сгенерировать новый токен. Прокрутите вниз до «Настройки разработчика». Выберите «Токены личного доступа» и создайте новый:

Вам нужно будет подтвердить свой фактический пароль учетной записи. Дайте токену имя и выберите дату истечения срока действия. Вы, вероятно, захотите изменить его с 30 дней по умолчанию, хотя Github покажет предупреждение, если вы выберете «Без истечения срока действия». Не страшно иметь постоянный токен, но вам, вероятно, следует менять пароли и токены не реже одного раза в 6 месяцев.

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

Вы получите такой токен, который можно использовать вместо пароля:

ghp_cgq4ZrHmFu0lLPl7ajKAwgMPnT5zhF00000

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

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

В Windows, если вы используете собственный Git (не через WSL), вам потребуется открыть «Управление учетными данными Windows» на панели управления или в меню «Пуск» и отредактировать или добавить пароль в <git:https://github.com.

В macOS он доступен через приложение Связка ключей. Найдите «github.com», найдите запись «интернет-пароль» для своей учетной записи Git и измените ключ.

Для Linux или WSL вам необходимо отключить кеш либо локально (для одного репо), либо глобально:

git config --local --unset credential.helper
git config --global --unset credential.helper

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

git config --global credential.helper "cache --timeout=86400"

Или настроив его для постоянного хранения учетных данных в ~/.github-credentials:

git config credential.helper store

Обратите внимание: если у вас ранее был включен этот кеш, вам может потребоваться удалить строку со старыми кешированными учетными данными в файле ~/.github-credentials .