如何在Eclipse上使用多个Git SSH密钥?

时间:2015-07-02 05:45:05

标签: eclipse git ssh

我为解决方案查了几个答案和论坛,但我找不到一个有效的答案。

我有这种情况:

  • Eclipse Luna Service Release 2(4.4.2)
  • Ubuntu 14.04 x64
  • ~/.ssh文件夹
  • 上的两个ssh键
  • 两个bitbucket帐户(一个用于个人项目,一个用于企业)
  • 只能使用我的主键(〜/ .ssh / id_rsa)
  • 访问的git存储库
  • 只能使用我的辅助密钥(〜/ .ssh / other)
  • 访问的git存储库

我创建了一个包含内容的~/.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: git@bitbucket.org: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存在问题。

如何在Eclipse上使用多个Git SSH密钥?或者如何强制Eclipse在单个项目中使用我的二级密钥?

1 个答案:

答案 0 :(得分:5)

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网址
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?”建议的内容类似)