В доступе к нескольким аккаунтам GitHub отказано - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь настроить личную git учетную запись вместе с моей рабочей учетной записью. Я следовал этому руководству https://www.freecodecamp.org/news/manage-multiple-github-accounts-the-ssh-way-2dadc30ccaca/ и мой ~ / .ssh / config (some-name - мое имя пользователя для личной учетной записи github)

host github.com
   Hostname github.com
   User git
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa
host some-name.github.com
   Hostname github.com
   Identityfile ~/.ssh/id_rsa_personal

После этого я запустил ssh-add ~/.ssh/id_rsa_personal, который был успешным.

Однако, когда я делаю ssh -T some-name.github.com, он не работает с somename@github.com: Permission denied (publickey) Рабочая учетная запись работает нормально. Я также загрузил недавно сгенерированный ключ publi c на учетную запись github.

My git config --list показывает user.name = some-name.

обновление : основываясь на ответе Von C, я смог заставить ssh -T some-name.github.com успешно работать. Тем не менее, я все еще получаю следующую ошибку, когда я пытаюсь вставить код sh в репо в учетной записи github.

ERROR: Permission to some-name/docker-react.git denied to User.
fatal: Could not read from remote repository.

Я проверил ключи s sh, загруженные на github, и это правильно.

Ответы [ 3 ]

1 голос
/ 07 января 2020

Во-первых, добавьте пользователя git во вторую конфигурацию:

host some-name.github.com
   Hostname github.com
   Identityfile ~/.ssh/id_rsa_personal
   User git

OP agyeya должен был затем изменить URL-адрес удаленного origin соответственно:

git remote set-url origin git@some-name.github.com:some-name/docker-react.git

Если это все еще не работает (при условии, что ключ publi c был зарегистрирован в вашей учетной записи GitHub):

Попробуйте создать первые ключи без связанной идентификационной фразы, чтобы проверить это.
Это позволит избежать необходимости в агенте s sh (опять же, для тестирования)

См. " Какой правильный формат для закрытого ключа в учетных данных ", чтобы создать его с старый формат PEM:

ssh-keygen -m PEM -t rsa -P "" -f ~/.ssh/id_rsa_personal
0 голосов
/ 07 января 2020

Вы можете определить ключ на уровне хранилища.

Конфигурация core.sshCommand: Начиная с Git версии 2.10.0, вы можете настроить это для репо или глобально, так что вам больше не нужно устанавливать переменную окружения!

git config core.sshCommand "ssh -i ~/.ssh/id_rsa_example -F /dev/null"
git pull
git push

Это добавит ключевую запись в файл .git / config. Таким образом, всякий раз, когда вы выполняете какие-либо действия git, при этом будет использоваться определенный ключ s sh.

Переменная среды GIT_SSH_COMMAND: Начиная с Git версии 2.3.0, вы можете используйте переменную окружения GIT_SSH_COMMAND следующим образом:

GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_example" git clone example

Обратите внимание, что -i иногда может быть переопределен вашим конфигурационным файлом, в этом случае вы должны дать S SH пустой конфигурационный файл, например так:

GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_example -F /dev/null" git clone example
0 голосов
/ 07 января 2020

Вы загрузили свой ключ publi c на github? В github вы можете проверить, какие ключи publi c загружены, посмотреть, загрузили ли вы их и правильно ли вы загрузили.

...