В доступе отказано (открытый ключ): несколько хранилищ и ключи RSA, использующие Github - PullRequest
2 голосов
/ 22 апреля 2011

Я получаю сообщение об ошибке «Отказано в доступе (открытый ключ)» при выполнении запроса ssh git@github.com.Я чувствую, что это потому, что он не может найти мою папку .ssh.Вот предыстория того, что я сделал до сих пор:

Ранее я настроил github для работы с моим репозиторием: repo1.Я следовал руководству для новичков на сайте github и установил репо:

/ home / CodeSherpa / repo1 /

с информацией по безопасности здесь:

/ home / CodeSherpa/.ssh

Я настроил id_rsa и id_rsa.pub в соответствии с руководством и поместил открытый ключ на github в мои открытые ключи.Затем я протестировал с

ssh git@github.com

и выполнил несколько команд push / pull / etc, и все работало просто отлично.

Теперь я хочу добавить еще несколько репозиториев.Я переместил свою структуру локальных каталогов так, чтобы она выглядела так:

/ home / CodeSherpa / repos /

* repo1 * repo2 * repo3

И я настроил /настроил соответствующие репозитории на github.

Я администратор и должен иметь доступ ко всему.Я хочу дать одному разработчику доступ к repo1 и repo2, но НЕ repo3, а другому разработчику доступ ко всем репо.

МОЯ ТЕКУЩАЯ ПРОБЛЕМА , что когда я пытаюсь инициализировать новые репозитории в моей локальной файловой системе, я продолжаю получать:

«Отказано в доступе (открытый ключ)» (с использованием sshgit@github.com)

МОЙ ВОПРОС Нужно ли иметь локальный ключ RSA для каждого нового репозитория?В настоящее время моя папка .ssh находится там, где я изначально настроил ее для моего первого репо:

/ home / CodeSherpa / .ssh

Нужно ли мне это делать:

> /home/CodeSherpa/repos/repo1/.ssh/id_rsa
> /home/CodeSherpa/repos/repo2/.ssh/id_rsa
> /home/CodeSherpa/repos/repo3/.ssh/id_rsa

А затем установить три уникальных открытых ключа для каждого репо на github?

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 22 апреля 2011

Обычно вам нужен только один ключ на пользователя, а не на репозиторий. Мое предложение будет:

  • удалить все ключи на вашем компьютере
  • удалите все ваши ключи в github
  • повторите процесс, только один раз

НО Если вы хотите, чтобы в каждом хранилище был один пользователь, тогда вам потребуется один ключ ssh на пользователя. Для этого:

  • следуйте инструкциям в github 3 раза и присвойте каждому ключу свое имя файла.
  • когда вы хотите использовать одну из этих клавиш, запустите ssh-add [path_to_user_1_key] ** с этого момента вы будете подключаться к github как user_1
  • Если вам нужно подключиться от имени другого пользователя, например user_2, запустите ssh-add -D и ssd-add [path_to_user_2_key]

Например, я использую один и тот же ключ ssh для github и bitbucket, и у меня есть несколько репозиториев на каждом сервере.

1 голос
/ 03 мая 2011
  • В github (на самом деле в большинстве мест) ключ ssh привязан к учетной записи пользователя (потому что он используется для проверки / аутентификации на github, которым вы действительно являетесь, как вы утверждаете), а не на репозитории.
  • Вы должны иметь возможность добавлять любого другого пользователя github в качестве соавтора к любому из ваших проектов.
  • Добавление соавторов - это способ контроля доступа к вашим проектам на github.Для этого вам не нужно создавать многопользовательские ssh-ключи.
  • Вы можете добавить соавтора в свой проект, перейдя в «Администрирование репозитория» -> «Соавторы».
...