- Предисловие
- Как открыть терминал
- Генерация SSH-ключей
- Port 22
- Permission denied
- Permission denied (publickey)
- Fatal: Authentification failed
Привет, глупышка. Если ты читаешь это, значит у тебя возникли проблемы с Git, а Руслан агай перенаправил твой запрос на помощь с решением проблемы к этому документу.
Найди свою проблему в разделе содержания, а затем следуй приведенным инструкциям.
В Windows нет терминала, но есть консоль. Но мы все равно будем называть это терминалом. Чтобы открыть окно терминала в Windows, выполните следующие действия:
- Нажми
Win+R
, введиcmd
и нажмиEnter
.
Чтобы открыть окно терминала в дистрибутиве Linux, выполните следующие действия:
-
Нажми
Ctrl+Alt+T
илиShift+Ctrl+T
. -
Если это не сработало, попробуй найти терминал через поисковую систему дистрибутива.
-
Если ты не понял предыдущий шаг или он не сработал, попробуй
Ctrl+Alt+F2
(или F3-F6). Это откроет интерфейс строки консоли. Чтобы вернуться в графический интерфейс, используйCtrl+Alt+F1
(или F7).
Если у тебя еще нет пары SSH-ключей, тебе нужно создать ее для аутентификации с удаленными репозиториями через SSH.
-
Создай SSH-ключ
Введи следующую команду в окне терминала для создания новой пары ключей SSH:ssh-keygen -t rsa -b 4096
t rsa
указывает тип ключа (RSA).b 4096
задает длину ключа в 4096 бит для лучшей безопасности.
-
Выбери путь для ключа
Тебе будет предложено указать путь для сохранения ключа. Нажми Enter, чтобы принять расположение по умолчанию (~/.ssh/id_rsa). -
Задай пароль (опционально)
Тебе будет предложено ввести пароль (passkey) для ключа. Это добавит дополнительный уровень безопасности. Ты можешь нажать Enter, чтобы пропустить этот шаг, но рекомендуется использовать пароль. -
Добавь SSH-ключ в агент
После генерации ключа добавь его в SSH-агент:eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa
Замени
id_rsa
на имя твоего приватного ключа, если оно отличается. -
Добавь свой публичный ключ на GitHub
Скопируй публичный ключ в буфер обмена:cat ~/.ssh/id_rsa.pub
Затем перейди в Настройки
GitHub
>SSH и GPG ключи
, нажмиНовый SSH ключ
и вставь скопированный ключ. -
Проверь соединение
Убедись, что все работает:ssh -T git@github.com
Ты должен увидеть сообщение об успешном соединении.
Эта ошибка обычно возникает из-за неправильного URL удаленного репозитория в конфигурации Git.
-
Проверь корректность аргументов
Убедись, что аргументы, которые ты указал в команде git, правильные. -
Проверь URL удаленного репозитория
Выполни следующую команду в терминале для проверки URL текущего remote'a:git remote -v
Убедись, что URL верный. Если нет, обнови его:
git remote set-url origin CORRECT_URL
Замени
CORRECT_URL
на правильный URL репозитория (HTTPS или SSH). -
Проверь подключение к интернету
Убедись, что у тебя есть активное подключение к интернету, так как Git может возвращать ошибку, если сеть недоступна. -
Проверь доступ к репозиторию
Если ты используешь HTTPS, убедись, что у тебя есть правильные учетные данные для доступа к репозиторию. Для SSH убедись, что твои SSH-ключи правильно настроены и добавлены на GitHub. -
Повтори команду git
После исправления URL или учетных данных попробуй снова выполнить команду Git, вызвавшую ошибку.
Если ты столкнулся с ошибкой "403 Forbidden" при попытке отправки или получения из репозитория Git, это обычно связано с неправильными учетными данными или проблемами доступа.
-
Смирись
Если ты хотел попортить чей-нибудь репозиторий, но у тебя нет прав доступа, это не сработает, глупышка, иди пару слушай. -
Проверь доступ к репозиторию
Убедись, что у тебя есть правильные права на репозиторий. Если он приватный, убедись, что ты являешься владельцем или тебе предоставлен доступ коллаборатора. -
Проверь URL remote'а
Выполни следующую команду для проверки URL remote'а:git remote -v
Если отображается URL HTTPS (например, https://github.com/...), рекомендуется переключиться на SSH для лучшей безопасности. Чтобы изменить URL remote'а на SSH, выполни:
git remote set-url origin git@github.com:USERNAME/REPO.git
Замени USERNAME и REPO на твои имя пользователя GitHub и имя репозитория.
-
Настрой свой SSH-ключ
Убедись, что твой SSH-ключ добавлен на твой аккаунт GitHub. Обратись к шагам в разделе выше, чтобы создать и добавить SSH-ключ, если ты этого еще не сделал. -
Очисти кешированные учетные данные (если используешь HTTPS) Если ты используешь HTTPS и ранее ввел неверные учетные данные, очисти кеш:
git credential-cache exit
Затем попробуй снова выполнить отправку или получение. Git запросит твои учетные данные, где ты сможешь ввести правильные.
-
Повторикоманду Git После проверки доступа и настройки учетных данных снова выполникоманду Git, чтобы проверить, решена ли проблема.
Эта ошибка возникает, когда Git не может аутентифицировать твой SSH-ключ с удаленным репозиторием.
-
Проверь, добавлен ли SSH-ключ
Убедись, что твой SSH-ключ добавлен в SSH-агент. Введи следующую команду для проверки:ssh-add -l
Если ключи не отображаются, возможно, тебе нужно добавить cвой ключ:
ssh-add ~/.ssh/id_rsa
Замени
id_rsa
на имя своего приватного ключа, если оно отличается. -
Добавь SSH-ключ на GitHub
Если твой SSH-ключ не добавлен на GitHub, выполниследующие шаги:- Перейди в
Настройки
>SSH и GPG ключи
на GitHub. - Нажми
Новый SSH ключ
, вставь твой публичный ключ (обычно находится в ~/.ssh/id_rsa.pub) и сохрани его.
- Перейди в
-
Проверь SSH-соединение
Проверь соединение с GitHub, введя:ssh -T git@github.com
Если аутентификация пройдет успешно, ты увидишь сообщение вроде "Привет, USERNAME! Ты успешно аутентифицированы."
-
Проверь конфигурацию SSH
Проверь файл конфигурации SSH (~/.ssh/config), чтобы убедиться, что настройки правильные:Host github.com User git Hostname github.com IdentityFile ~/.ssh/id_rsa
Измени путь IdentityFile, если ты используешь другой SSH-ключ.
-
Повтори команду Git.
После того как ты убедился, что все настроено правильно, попробуй снова выполнить команду Git.
Эта ошибка обычно возникает, когда Git не может аутентифицировать твои учетные данные для удаленного репозитория.
-
Проверь URL remote'a
Убедись, что ты используешь правильный URL репозитория (предпочтительно SSH URL). Выполни следующую команду для проверки:git remote -v
Если ты используешь HTTPS и хочешь переключиться на SSH, обнови URL:
git remote set-url origin git@github.com:USERNAME/REPO.git
Замени USERNAME и REPO на свое имя пользователя GitHub и имя репозитория.
-
Обнови свои учетные данные
Если ты используешь HTTPS и не хочешь переключаться на SSH, убедись, что твои учетные данные актуальны:- Для GitHub используй Personal Access Token (PAT) вместо пароля, так как пароли больше не работают. Ты можешь создать токен, перейдя в
Настройки
>Настройки разработчика
>Личные токены доступа
на GitHub. - Заменистарый пароль на этот токен при запросе во время операций Git.
- Для GitHub используй Personal Access Token (PAT) вместо пароля, так как пароли больше не работают. Ты можешь создать токен, перейдя в
-
Настрой SSH-ключи (если переключаешься на SSH)
Если ты переключаешься на SSH и еще не настроил ключи SSH, следуй шагам, описанным в этом разделе. -
Повторикоманду Git После обновления учетных данных попробуйте снова выполнить команду Git.