Ошибка при использовании GitHub CLI: отказ в доступе при работе с несколькими учетными записями

Вопрос или проблема

Я пытаюсь управлять двумя учетными записями GitHub (gabrielbdornas и gabrielbdornass) на одном устройстве, используя GitHub CLI (gh). Я успешно создал репозиторий под своей учетной записью gabrielbdornass, но когда я пытаюсь выполнить push, я получаю следующую ошибку:

ERROR: Permission to gabrielbdornass/mkdocs-mike-tests.git denied to gabrielbdornas.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
failed to run git: exit status 128

Я следовал этой статье, которая рекомендовала gh auth setup-git для настройки git для нового пользователя. Хотя начальная настройка, похоже, прошла успешно, я все равно получаю ошибку доступа при попытке выполнить push в новый репозиторий.

Вот несколько деталей:

  • Команда git config user.email показывает электронную почту для моей учетной записи gabrielbdornass, а не для новой учетной записи gabrielbdornas.
  • Я могу создать репозиторий через CLI, но push в него не удается.

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

Что я упускаю, чтобы обеспечить правильную идентификацию и использование нужной учетной записи (gabrielbdornass) при выполнении push в репозиторий с помощью GitHub CLI?

Буду признателен за любые советы по настройке нескольких учетных записей с GitHub CLI для операций push/pull!

Ответ или решение

Ошибка GitHub CLI: Отказ в доступе при использовании нескольких аккаунтов

Ситуация, описанная вами, часто возникает у пользователей, работающих с несколькими аккаунтами GitHub на одном устройстве. Ошибка, которую вы получаете, указывает на то, что GitHub CLI использует неверные учетные данные для выполнения операции push. Давайте подробно разберем возможные причины и решения этой проблемы.

Анализ проблемы

Вы успешно создали репозиторий в своем аккаунте gabrielbdornass, однако при попытке выполнить команду push получаете сообщение об ошибке, указывающее, что доступ отклонен для аккаунта gabrielbdornas. Основными аспектами проблемы являются:

  1. Настройки глобальных конфигураций Git: Убедитесь, что глобальные настройки пользователя, связанные с электронной почтой и именем, корректны и соответствуют аккаунту, с которым вы хотите работать.

  2. Учётные данные GitHub CLI: GitHub CLI может неправильно настроить конфигурацию аутентификации для нескольких аккаунтов, что может приводить к ошибкам при попытке выполнения операций с репозиториями.

Шаги для решения проблемы

Следует обратить внимание на следующие шаги для устранения ошибки:

1. Проверьте глобальные настройки Git

Для проверки текущих глобальных настроек Git выполните команду:

git config --global user.email

Если здесь указана электронная почта вашего аккаунта gabrielbdornas, а не gabrielbdornass, это может вызывать проблему при попытке выполнить команду push. Чтобы изменить адрес электронной почты, используйте следующую команду:

git config --global user.email "your-email-for-gabrielbdornass@example.com"

2. Аутентификация с помощью gh auth

Выполните команду gh auth login, чтобы снова авторизоваться с использованием нужного аккаунта:

  1. Выберите способ аутентификации (обычно это OAuth, если у вас включен двуфакторный аутентификатор).
  2. Следуйте инструкциям для входа в ваш аккаунт gabrielbdornass.

После аутентификации с нужным аккаунтом выполните команду:

gh auth setup-git

Эта команда должна настроить .gitconfig так, чтобы GitHub CLI использовал правильный аккаунт.

3. Локальная конфигурация для конкретного репозитория

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

git config user.email "your-email-for-gabrielbdornass@example.com"

Также не забудьте указать имя пользователя:

git config user.name "gabrielbdornass"

Эти команды позволят Gitу знать, какие учетные данные использовать для конкретного репозитория.

4. Удаление кэшированных учетных данных

Если вы ранее аутентифицировались с использованием gh или git и сохранили учетные данные, некорректно хранящиеся, это может также вызвать проблемы. Удалите кэшированные учетные данные. Для этого выполните:

git credential reject

5. Используйте SSH для аутентификации

Подумайте о настройке SSH-ключей для управления доступом к различным аккаунтам. Это позволит вам избежать ошибок аутентификации, связанных с использованием HTTPS. Следуйте этим шагам:

  1. Создайте новый SSH-ключ для второго аккаунта:
ssh-keygen -t rsa -b 4096 -C "your-email-for-gabrielbdornass@example.com"
  1. Добавьте ключ в SSH-агент и настройте файл ~/.ssh/config:
Host github.com-gabrielbdornass
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_gabrielbdornass
  1. После этого при выполнении git clone или git push используйте адрес с новым хост-именем:
git clone git@github.com-gabrielbdornass:gabrielbdornass/repository.git

Заключение

Управление несколькими аккаунтами на GitHub может быть сложным, если не следовать правильным настройкам. Используя приведенные выше рекомендации, вы сможете настроить GitHub CLI так, чтобы он корректно применял необходимые учетные данные для каждого репозитория.

Если после выполнения описанных шагов у вас все еще возникают проблемы, советую тщательно пересмотреть аутентификацию и настройки конфигурации. Также вы можете обратиться в поддержку GitHub для более подробной помощи.

Оцените материал
Добавить комментарий

Капча загружается...