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

5
我查看了几个答案和论坛,但是没有找到一个有效的解决方案。
我有这样的情况:
- 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.

我在窗口 > 首选项 > 网络连接 > SSH2 > 私钥中添加了次要密钥,并将GIT_SSH环境变量设置为指向我的ssh可执行文件:

$echo $GIT_SSH
/usr/bin/ssh

我已经重新启动了Eclipse和操作系统多次,但都没有成功。
由于我可以在命令行中无问题地使用git,我倾向于认为Eclipse出了问题。
如何在Eclipse上使用多个Git SSH密钥?或者如何强制Eclipse在单个项目中使用我的第二个密钥?
1个回答

8

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

这类似于我为 "如何在办公电脑上处理个人GitHub存储库,其SSH密钥已添加到与工作相关的GitHub帐户?" 建议的内容。


那个文件是基于这个问题的被接受答案创建的。为每个项目更改ssh url起到了作用 - 谢谢! - Gilberto Torrezan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接