2013-03-25 2 views
2

Я довольно новый в этом материале - у меня есть профессиональная учетная запись компании github, которая была создана в течение последних нескольких месяцев. Недавно я работал над некоторыми учебниками по рельсам. Я создал один учебный репозиторий и подтолкнулся под свою личную учетную запись без каких-либо проблем.2nd account/repo push issue

Однако, по какой-то причине после следующих шагов для второго проекта я пытаюсь работать, я получаю сообщение об ошибке:

ERROR: Permission to <username>/<projectname>.git denied to <businessaccount>. 
fatal: The remote end hung up unexpectedly 

Почему она пытается использовать свой бизнес счета для этого репо? И как мне заставить его использовать мою личную учетную информацию?

Спасибо!

ответ

2

Информация об учетной записи, используемая git для аутентификации с удаленного сервера, может упоминаться как часть URL-адреса удаленного.

<USERNAME>@<REMOTE_HOSTNAME>:<REMOTE_REPO_URL> 

Если вы не указали ни одного имени пользователя, git начнет автоматически использовать ваше имя пользователя для входа в систему.

К сожалению, Github не позволяет использовать один и тот же набор ключей SSH для нескольких учетных записей. Таким образом, вам понадобится создать еще один набор ключей SSH (т. Е. Ключевую пару) для вашей личной учетной записи github.

  1. Сформировать новый SSH ключей для вашего лицевого счета

    ssh-keygen -t rsa -f ~/.ssh/id_rsa.personal -C "Keypair for Personal Github account" 
    
  2. Добавьте следующие строки в файл ~/.ssh/config сделать SSH использовать новую пару ключей, когда со ссылкой на организм хозяина, personal.github.com:

    Host personal.github.com 
    User git 
    HostName github.com 
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/id_rsa.personal 
    
  3. Для каждого репо, которое вы планируете использовать, используя персональную учетную запись github, обязательно используйте имя хоста personal.github.com в URL вместо github.com. Кроме того, часть имени пользователя [email protected] может быть опущена, поскольку мы уже упоминали об этом в ~/.ssh/config. Поэтому любой из них теперь должен работать.

    git clone personal.github.com:keecham/blacktie.git 
    git clone [email protected]:keecham/blacktie.git 
    
  4. Ваш счет работы GitHub и ключи остаются нетронутыми таким образом, и не должны быть затронуты.

+0

Спасибо, что ответили. Это публичное репо, которое я только что создал сегодня на GitHub. https://github.com/keecham/blacktie Я попытался создать SSH-ключ для моего личного сообщения электронной почты, но он говорит, что у меня его уже есть. Когда я копирую и вставляю этот SSH-ключ в свою личную учетную запись github, он говорит, что он уже используется где-то. Не знаю, что происходит. –

+0

@ KishoreEechambadi - я обновил свой ответ с инструкциями о том, как использовать другую пару ключей SSH для каждой из учетных записей github. – Tuxdude

+0

Спасибо! Все шаги сработали - я создал новую пару ключей ssh ​​(создал и) добавил эти строки в файл конфигурации и смог клонировать репо (хотя он в настоящее время пуст). Однако, когда я пытаюсь нажать git push, он все еще говорит, что разрешение отклонено . Как я нажимаю как личный пользователь? И как мне переключаться между ними? –