Я получаю ошибку “Поддержка аутентификации по паролю была удалена” при попытке использовать git pull, несмотря на то, что я недавно создал персональный токен доступа GitHub, который все еще должен быть действительным. Почему я сталкиваюсь с этой ошибкой аутентификации и как я могу ее исправить?
Ошибка “Поддержка аутентификации по паролю была удалена” возникает из-за того, что GitHub прекратил поддержку аутентификации по паролю для операций Git 13 августа 2021 года, требуя вместо этого использования персональных токенов доступа (PAT). Даже при наличии действительного PAT вы можете столкнуться с проблемами аутентификации из-за истечения срока действия токена, недостаточных разрешений, проблем с кэшированием учетных данных или требований SSO для учетных записей организаций.
Содержание
- Понимание ошибки аутентификации
- Распространенные причины, по которым ваш персональный токен доступа не работает
- Пошаговые решения для устранения проблемы
- Альтернативные методы аутентификации
- Предотвращение будущих проблем с аутентификацией
Понимание ошибки аутентификации
Сообщение об ошибке “Поддержка аутентификации по паролю была удалена” появляется из-за значительного изменения политики безопасности GitHub, которое произошло 13 августа 2021 года, когда GitHub полностью прекратил принимать пароли учетных записей для операций Git по протоколу HTTPS [источник]. Это изменение было внедрено для повышения безопасности и предотвращения потенциальных утечек паролей в журналах Git и истории команд.
Как указано в официальной политике GitHub, “Начиная с 13 августа 2021 года GitHub прекратил поддержку использования пароля для аутентификации операций Git. Это означает, что вам потребуется использовать SSH-ключ или персональный токен доступа (PAT) для аутентификации при клонировании…”
Эта ошибка обычно возникает, когда ваша локальная конфигурация Git по-прежнему имеет кэшированные учетные данные, использующие ваш старый пароль, или когда вы вручную вводите учетные данные и пытаетесь использовать свой пароль вместо PAT.
Распространенные причины, по которым ваш персональный токен доступа не работает
Даже если вы создали PAT, несколько проблем могут помешать ему правильно работать с командой git pull:
1. Истечение срока действия токена
Персональные токены доступа имеют даты истечения срока действия, которые вы устанавливаете при их создании. Если ваш токен истек, он больше не будет работать для аутентификации [источник]. Токены могут истечь от 1 дня до 1 года в зависимости от первоначальной настройки.
2. Недостаточные разрешения
Ваш PAT может не иметь необходимых областей (разрешений) для выполняемых вами операций. Для базовых операций Git, таких как git pull, вам требуется хотя бы область repo, которая предоставляет доступ на чтение к публичным репозиториям и полный контроль над приватными репозиториями [источник].
3. Требования SSO для организаций
Если вы работаете с репозиториями организации, ваш PAT может требовать настройки SSO (Single Sign-On). Многие организации требуют, чтобы PAT были авторизованы через их провайдер идентификации перед использованием [источник].
4. Проблемы с кэшированием учетных данных
Ваша система может кэшировать старые учетные данные на основе пароля и не запрашивать ввод вашего нового PAT [источник]. Это особенно характерно для систем Windows, которые хранят учетные данные Git в диспетчере учетных данных Windows.
5. Неправильный ввод токена
При запросе учетных данных вам нужно ввести имя пользователя (имя пользователя GitHub) и PAT в качестве пароля, а не ваш фактический пароль учетной записи GitHub [источник].
Пошаговые решения для устранения проблемы
Решение 1: Создайте новый персональный токен доступа с правильными разрешениями
- Перейдите в настройки GitHub: Нажмите на изображение профиля в правом верхнем углу и выберите “Настройки”
- Перейдите в настройки для разработчиков: В боковой панели слева нажмите “Настройки для разработчиков”
- Создайте новый токен: Нажмите “Персональные токены доступа” → “Токены (классические)” → “Создать новый токен”
- Настройте параметры токена:
- Укажите описательную заметку (например, “Операции Git для репозитория X”)
- Установите дату истечения срока действия (выберите подходящий период)
- Выберите области: для
git pullвам требуется хотя бы областьrepo[источник]
- Скопируйте и безопасно сохраните: После создания немедленно скопируйте токен и сохраните его в безопасном месте
Решение 2: Настройте диспетчер учетных данных Git
Настройте Git для правильного использования вашего PAT, настроив кэширование учетных данных:
# Настройте Git для использования помощника учетных данных
git config --global credential.helper manager
# Или для macOS
git config --global credential.helper osxkeychain
# Для Linux
git config --global credential.helper store
Решение 3: Очистите кэшированные учетные данные
Удалите все кэшированные учетные данные на основе пароля:
Windows:
- Откройте диспетчер учетных данных
- Перейдите в раздел “Учетные данные Windows”
- Найдите все записи, связанные с
git:https://github.com - Удалите их
macOS:
security delete-internet-password -a "github.com" -s "git:https://github.com"
Решение 4: Настройте PAT для SSO организации
Если вы работаете с репозиториями организации:
- Убедитесь, что ваш PAT авторизован через SSO вашей организации
- Перейдите в настройки вашей организации
- Перейдите в “Аутентификация” → “Требовать авторизацию персонального токена доступа для членов организации”
- Авторизуйте существующий PAT или создайте новый с поддержкой SSO [источник]
Решение 5: Правильно используйте PAT
При запросе учетных данных во время выполнения git pull:
- Имя пользователя: Ваше имя пользователя GitHub
- Пароль: Ваш персональный токен доступа (не пароль вашей учетной записи GitHub)
Вы также можете настроить Git на запоминание вашего PAT, установив:
git config --global credential.helper store
Затем выполните команду Git, и при запросе введите ваше имя пользователя и PAT.
Альтернативные методы аутентификации
Если PAT продолжают вызывать проблемы, рассмотрите эти более надежные альтернативы:
Аутентификация по SSH-ключу
SSH-ключи обеспечивают более безопасный и часто более удобный метод аутентификации:
-
Создайте SSH-ключ:
bashssh-keygen -t ed25519 -C "your_email@example.com" -
Добавьте SSH-ключ в SSH-агент:
basheval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 -
Добавьте публичный ключ в GitHub:
- Скопируйте ваш публичный ключ:
cat ~/.ssh/id_ed25519.pub - Перейдите в Настройки GitHub → SSH и GPG ключи → Новый SSH-ключ
- Вставьте содержимое публичного ключа
- Скопируйте ваш публичный ключ:
-
Используйте SSH-URL:
bashgit remote set-url origin git@github.com:username/repository.git
Аутентификация через GitHub CLI
GitHub CLI обеспечивает упрощенную аутентификацию:
# Аутентификация через GitHub CLI
gh auth login
# Установите как помощник учетных данных
git config --global credential.helper "gh auth git-credential"
Предотвращение будущих проблем с аутентификацией
Чтобы избежать подобных проблем с аутентификацией в будущем:
1. Устанавливайте подходящие сроки истечения токенов
- Используйте более короткие сроки истечения для токенов разработки (30-90 дней)
- Используйте более длительные сроки истечения для токенов продакшена (до 1 года)
- Регулярно аудитируйте и ротируйте ваши токены
2. Используйте детализированные токены
Рассмотрите возможность использования детализированных PAT GitHub, которые обеспечивают более точный контроль над разрешениями и упрощают отзыв [источник].
3. Реализуйте управление учетными данными
- Используйте Git Credential Manager в Windows
- Используйте Keychain в macOS
- Используйте
libsecretв Linux - Рассмотрите корпоративные менеджеры учетных данных для командной среды
4. Мониторьте использование токенов
- Регулярно проверяйте активные токены в настройках GitHub
- Отзывайте неиспользуемые токены
- Настраивайте уведомления об истечении срока действия токенов
5. Документируйте настройку аутентификации
Сохраняйте документацию по аутентификации с вашими репозиториями, включая:
- Какой метод аутентификации использовать
- Где найти учетные данные
- Как ротировать токены
- Процедуры экстренного доступа в случае проблем
Источники
- GeeksforGeeks - Как исправить ошибку “Поддержка аутентификации по паролю была удалена”?
- TheServerSide - Исправление ошибки “Поддержка аутентификации по паролю была удалена” в GitHub
- Stack Overflow - Сообщение “Поддержка аутентификации по паролю была удалена”
- MageComp - Создание персонального токена доступа GitHub
- Сообщество GitHub - Обсуждение неверного имени пользователя или пароля
- Сообщество GitHub - Обсуждение удаления аутентификации по паролю
- Сообщество DEV - Поддержка аутентификации по паролю была удалена
- Medium - Как решить проблему ошибки удаления аутентификации по паролю в GitHub в AWS EC2
- LinkedIn - Как исправить ошибку “Поддержка аутентификации по паролю была удалена” в GitHub
- Документация AWS - Истек срок действия персонального токена доступа GitHub
Заключение
Ошибка “Поддержка аутентификации по паролю была удалена” является распространенной проблемой после изменений в политике безопасности GitHub в 2021 году, и обычно возникает, когда ваш PAT истек, не имеет достаточных разрешений или когда кэширование учетных данных препятствует правильной аутентификации. Для решения этой проблемы создайте новый PAT с соответствующими областями repo, правильно настройте диспетчер учетных данных Git и убедитесь, что вы вводите PAT (а не пароль) при запросе учетных данных. Для более надежной долгосрочной аутентификации рассмотрите возможность перехода на SSH-ключи или аутентификацию через GitHub CLI. Регулярно аудитируйте и ротируйте ваши токены и документируйте настройку аутентификации, чтобы предотвратить подобные проблемы в будущем.