2015-10-05 2 views
1

У меня есть две учетные записи github, и я пытаюсь настроить github, мою среду и ключи ssh, чтобы я мог нажать на любой репо, находится ли он в my github.com/user1 или github.com/user2. Я потратил часы, пытаясь получить это право, следуя всем ресурсам, которые я могу найти, увы, мне кажется, что у меня нет понимания, чтобы разобраться. Может ли кто-нибудь помочь мне правильно настроить это?Git ОШИБКА: Разрешение пользователю1/repoA.git отрицается пользователем2

Каждая из моих двух учетных записей на github.com настроена с разными адресами электронной почты; github.com/user1 = '[email protected] и github.com/user2 = [email protected].

Я два сгенерированные ключи протокола SSH первый в .ssh/id_rsa & .ssh/id_rsa.pub и этот ключ SSH сохраняется в github.com/user1. Второй SSH-ключ в .ssh/user2 .ssh/user2_rsa and saved in github.com/user1`.

У меня есть .ssh/config file, который содержит:

Host user1.github.com 
HostName github.com 
IdentityFile ~/.ssh/user1 
Host user2.github.com 
HostName github.com 
IdentityFile ~/.ssh/id_rsa 

Когда я бегу ssh-add -l я вижу обе клавиши 'загружены'.

Когда я бегу ssh -T [email protected] я получаю Hi user2! You've successfully authenticated, but GitHub does not provide shell access.

Когда я бегу ssh -T [email protected] я получаю Hi user2! You've successfully authenticated, but GitHub does not provide shell access.

Я могу успешно нажать на репо в «github.com/user2».

Я не могу нажать на репо в 'github.com/user1', с сообщением об ошибке ниже;

ERROR: Permission to user1/repo.git denied to user2. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

Мой файл `.gitconfig» содержит:

[user] 
    name = my full name 
    email = [email protected] 
[GitHub] 
    user = user1 

Из того, что я могу видеть это, кажется, что моя локальная среда, CMD, имеет меня застрял в user2 и не позволит user2 совершить в пользователь1 github счет. Но а) я думал, что сценарий в .ssh/config должен признать, что когда я нажимаю на user1, он должен использовать user1 ssh и наоборот, но это, похоже, не происходит, и b) у моего .gitcofig есть мои user.email и мой пользователь GitHub как user1, который конфликтует с моей аутентификацией как user2 после запуска ssh -T ....

Я пробовал так много вещей, что мои трусики сейчас правильные. Может ли кто-нибудь помочь мне правильно настроиться на это, а также объяснить, как я могу стереть все SSH и начать все заново и правильно настроить (обратите внимание, что у меня также настроена учетная запись Heroku, которая должна быть настроена).

Заранее спасибо.

ответ

1

The 2nd SSH key in .ssh/user2 .ssh/user2_rsa

Тем не менее, ваш .ssh/config использует id_rsa для user2.github.com

Host user2.github.com 
    HostName github.com 
    IdentityFile ~/.ssh/id_rsa 
         ^^^^^^ 

И user1.pub открытого ключа, кажется, зарегистрирован на user2 счет, так как ssh -T [email protected] возвращает Hi user2!

Проверьте вашу конфигурации и проверьте также на стороне github, какой открытый ключ был добавлен в какую учетную запись.

+0

Спасибо VonC, оценено. Я был в правильном беспорядке, поэтому я просто решил удалить все ключи и начать все заново, и теперь все работает нормально. Я удалю этот Q, поскольку я не уверен, что он будет конструктивным для других. – jbk

+0

@jbk Нет, вы можете оставить вопрос, поскольку он иллюстрирует работу ssh/config. – VonC

+0

У меня такая же проблема, но в Windows. Совет, как с этим иметь дело, было бы очень полезно –