Git WindowsLinux

Git: Authentication failed — не удаётся выполнить push или clone

  • Обновлено
  • Чтение ≈ 4 минуты

Краткий ответ

Многие сервисы (GitHub, GitLab) больше не принимают пароль учётной записи для Git по HTTPS. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. HTTPS и токены
  5. SSH
  6. Прочее

#Что означает ошибка

Сообщение
remote: Invalid username or password. fatal: Authentication failed

Ошибка Authentication failed / remote: Support for password authentication was removed при git push и git clone по HTTPS означает, что сервер не принял учётные данные. GitHub и многие другие хостинги не принимают пароль аккаунта: нужен персональный токен (PAT) или SSH-ключ.

Часто виноват сохранённый старый пароль в менеджере учётных данных.

Проверьте способ доступа и очистите кэш.

Многие сервисы (GitHub, GitLab) больше не принимают пароль учётной записи для Git по HTTPS. Нужен персональный токен доступа или SSH-ключ.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Используется пароль вместо токенаОшибка сервиса прямо указывает, что обычный пароль отклонён, а URL начинается с https://Создайте токен на нужный репозиторий с минимальными правами, не передавайте его третьим лицам.
Устаревшие сохранённые данныеGit использует автоматически сохранённые неправильные данные без нового запросаУдалите только запись для нужного домена из менеджера учётных данных.
Нет доступа к репозиториюРепозиторий открывается в браузере не той учётной записью либо отсутствует разрешение записиСверьте учётную запись, роль, срок токена и политику организации.
Неверный адрес remoteВ git remote -v указан неправильный владелец или хостСкопируйте URL с официальной страницы нужного репозитория и сверьте доступ.

#Пошаговое решение

  1. Проверьте адрес репозиторияОткройте терминал в папке проекта: в VS Code выберите «Терминал» → «Новый терминал», либо откройте Git Bash/PowerShell и перейдите командой cd в каталог с .git. Запустите git remote -v и проверьте URL напротив origin для fetch/push. Адрес должен вести именно к вашему репозиторию; сверьте владельца и название с адресной строкой на сайте GitHub/GitLab. Если репозиторий приватный, убедитесь, что он открывается под нужной учётной записью в браузере; если возвращает 404, это может означать отсутствие прав.
  2. Создайте персональный токенДля GitHub и подключения по https:// откройте на сайте аватар → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token. Выберите владельца и нужный репозиторий, небольшой срок действия; для push обычно требуется разрешение Repository permissions → Contents: Read and write, для clone достаточно Read-only. Организация может требовать подтверждения владельца. Для GitLab или корпоративного Git-сервера путь создания токена и названия прав другие — используйте документацию вашего сервиса. Никогда не вставляйте токен в URL, исходный код, сообщение поддержки или снимок экрана.
  3. Очистите сохранённые учётные данныеЕсли Git продолжает отправлять старый пароль: в Windows откройте «Пуск» → «Диспетчер учётных данных» → «Учётные данные Windows»; найдите запись для того же домена, что указан в git remote -v (например, git:https://github.com), и удалите только её. Это приведёт к новому запросу учётных данных при следующей операции; другие записи не трогайте. На macOS проверьте «Связка ключей» для домена, в Linux — настроенный Git credential helper (git config --show-origin --get-all credential.helper); не удаляйте всю связку/хранилище.
  4. Введите токен вместо пароляВ терминале снова выполните исходную команду git fetch origin для проверки чтения либо git push для записи, если у вас есть коммиты для отправки. При запросе в HTTPS введите имя пользователя, а вместо пароля вставьте персональный токен. При входе через Git Credential Manager следуйте окну браузера; токен может вообще не понадобиться вручную. Успех fetch — завершение без Authentication failed; успех push — сообщение об обновлении ветки. Альтернатива — настроить SSH-ключ по официальной инструкции сервиса, но смешивать SSH и HTTPS не требуется.
  5. Проверьте доступ к репозиториюЕсли ошибка осталась, откройте страницу репозитория и проверьте роль пользователя (чтение или запись), срок токена, выбранный репозиторий и дополнительные разрешения организации/SSO. Сообщения 403 и permission denied могут означать недостаток прав, а не неверный токен. Для SSH отдельно проверьте ssh -T git@github.com, но только если git remote -v содержит адрес git@... или ssh://.... Если недоступна организация, запросите разрешение администратора, не создавайте широкие токены для обхода ограничений.
  6. Показывает адреса удалённых репозиториев
    Linux · Терминал (Bash)Команда
    Показывает адреса удалённых репозиториев.
    git remote -v

#HTTPS и токены

Создайте токен: GitHub → Settings → Developer settings → Personal access tokens: для fine-grained токена выбирайте только нужный репозиторий и разрешения Contents (Read для чтения, Read and write для push). Введите его вместо пароля. Очистите старые данные: Windows — «Диспетчер учётных данных» → удалить git:https://github.com; macOS — Keychain Access → найти github.com; Linux — git credential-cache exit и git config --global --unset credential.helper. Сохранение: git config --global credential.helper manager (Windows) или store.

#SSH

Создайте ключ: ssh-keygen -t ed25519 -C "email", добавьте содержимое ~/.ssh/id_ed25519.pub в настройки аккаунта (SSH keys). Проверка: ssh -T git@github.com. Переключите адрес: git remote set-url origin git@github.com:user/repo.git. Если ключей несколько, настройте ~/.ssh/config с IdentityFile. Права на ключ: chmod 600 ~/.ssh/id_ed25519.

#Прочее

Проверьте права на репозиторий (вы должны быть участником), срок действия токена и SSO-авторизацию токена для организации. Проверьте URL: git remote -v. Для GitLab и корпоративных серверов используйте токены доступа проекта. При двухфакторной аутентификации токен обязателен. Выведите подробности: GIT_CURL_VERBOSE=1 GIT_TRACE=1 git push.

Linux · Терминал (Bash)Команда
Это отдельная альтернатива HTTPS, не исполнять автоматически подряд без добавления ключа на сайте. Значения-заглушки заменять фактическими.
# Только если выбран SSH-способ для GitHub; замените email на свой
ssh-keygen -t ed25519 -C "your-email@example.com"
# После добавления содержимого публичного ключа в Settings → SSH and GPG keys
ssh -T git@github.com
# URL замените на точный из кнопки Code → SSH страницы своего репозитория
git remote set-url origin git@github.com:OWNER/REPO.git

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 1 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.