2015-07-02 4 views
3

Я нашел несколько ответов и форумов для решения, но я не смог найти ни одного, который работает.Как использовать несколько ключей Git SSH на Eclipse?

У меня есть такой сценарий:

  • Затмения Luna Service Release 2 (4.4.2)
  • Ubuntu 14.04 x64
  • Два SSH ключей на моей ~/.ssh папке
  • Два счета Bitbucket (один для личные проекты и один для предприятия)
  • Репозиторий git доступен только с моим первичным ключом (~/.ssh/id_rsa)
  • репозиторий мерзавца доступен только с моим вторичным ключом (~/.ssh/прочее)

Я создал ~/.ssh/config файл с содержимым:

Host bitbucket bitbucket.org 
    Hostname bitbucket.org 
    IdentityFile ~/.ssh/id_rsa 
    IdentityFile ~/.ssh/other 
    User git 

И ради здравого смысла, я добавил второй ключ используя ssh-add также. Запуск ssh-add -l перечисляет оба ключа.

При использовании командной строки все команды git работают как обаяние с обоими репозиториями. Но при использовании Eclipse, я всегда получаю ошибку Invalid remote: origin при попытке клонировать или вытащить из хранилища с вторичным ключом:

Caused by: org.eclipse.jgit.errors.NoRemoteRepositoryException: [email protected]:myuser/myrepository.git: conq: repository access denied. 

я добавил вторичный ключ в Window > Preferences > Network Connections > SSH2 > Private keys, и установить переменную GIT_SSH среды, чтобы указать на мой ssh исполняемым:

$echo $GIT_SSH 
/usr/bin/ssh 

Я перезапущен Eclipse, и даже несколько раз ОС, не повезло.

Поскольку я без проблем могу использовать git из командной строки, я склонен полагать, что что-то не так с Eclipse.

Как использовать несколько ключей Git SSH на Eclipse? Или как заставить Eclipse использовать мой вторичный ключ в одном проекте?

ответ

3

Host bitbucket bitbucket.org? Вы не объявляете несколько имен записей в одном разделе Host.

я ожидал увидеть в файле SSH конфигурации объявляя несколько ключей:

Host bitbucketuserA 
    Hostname bitbucket.org 
    IdentityFile ~/.ssh/id_rsa 
    User git 

Host bitbucketuserB 
    Hostname bitbucket.org 
    IdentityFile ~/.ssh/other 
    User git 

А вы бы использовать SSH URL как

bitbucketuserA:userA/myrepo1 
bitbucketuserB:userB/myrepo2 

(это похоже на то, что я предложил для "How to work on personal GitHub repo from office computer whose SSH key is already added to a work related GitHub account? ")

+0

Этот файл был основан на принятом ответе на [этот вопрос] (http://stackoverflow.com/questions/2419566/best-way-to-use-multiple-ssh-private-keys-on-one -client). Изменение URL-адреса ssh для каждого проекта - спасибо! –

Смежные вопросы