无法使用EGit克隆远程Git仓库

28
我正在尝试使用Egit通过https协议克隆远程git仓库。 我按照这个在线教程的步骤进行操作。 当我插入URI:https://username@host:port/repositorypath,输入密码并点击NEXT时, 我收到了以下错误信息:
Cannot list the available branches.
Reason:
Exception caught during execution of ls-remote command.

我该如何克隆这个仓库?


1
你能修复一下那个链接吗?我在按照 vogella 的教程做的时候遇到了同样的问题。 - Urban
1
我不知道链接出了什么问题。但是,为了解决问题,只需在控制台中键入 - git config --global http.sslverify "false" - a_mark
好的,很酷。我的电脑重新启动后突然开始工作了。 - Urban
我的遇到了和你一样的问题,这可能是由于“常规-网络连接”中的代理设置引起的。希望这可以帮到你。 - rhgb
请检查您的代理设置是否正确。 - S-K'
18个回答

46

看起来Egit正在寻找SSL证书并且没有找到就无法正常工作。一个好的解决方法是:

Window→Preferences→Team→Git→Configuration→New Entry→http.sslverify=false

这样问题就会被解决了。


4
做这件事没有成功。或者用在控制台运行的建议也不行。有什么想法吗? - kburns
如果您无法从控制台克隆,则问题与EGit无关。您能否发送有关服务器配置、命令等的更多信息? - Daniel Lee

19

对于我来说,将 .git 添加到存储库的 URL 中可行。


5

这对我有用。

1) 在Eclipse中,选择 Window -> Preferences -> General -> Network Connections -> SSH2 (或者在搜索过滤器中直接输入SSH2)。转到 "Key Management" 选项卡。点击 "Generate RSA Key"。现在您可以看到生成的密钥信息。复制此生成的密钥。保持该窗口打开并执行第2步。

2) 转到GitHub账户。单击您的 profile -> Manage Account -> SSH keys -> Add key 。现在粘贴之前复制的密钥,然后点击 "Add key"

3) 现在回到Eclipse首选项窗口。点击 "Save Private Key" 将RSA密钥保存到文件中。默认情况下,此将保存到 Users\user_name\.ssh 目录中。在此处提供密码短语是可选的。

就这样了,现在重新启动Eclipse并克隆存储库。


3
我遇到了这个错误。
Cannot list the available branches. 
Reason: 
Exception caught during execution of ls-remote command.

当使用SSH Key并且可能是错误的bitbucket URL时:
错误?ssh://git@bitbucket.com/用户/仓库.git

使用以下URL可以正常工作(列出分支):
git@bitbucket.org:用户/仓库.git


3

对于您的情况可能没有帮助,但对其他人可能有用:当复制具有方案名称 git 而不是更常见的内容时,我看到过出现此错误。如果URI以 git:// 开头,请尝试将其更改为 http:// https://


2
在我的情况下,这是在Windows Vista上的两步解决方案。
我正在使用id_rsa证书,因此我需要更改偏好设置>常规>网络连接>SSH2>常规>SSH2中的位置,以指向.ssh而不是之前提到的ssh。除此之外,我还需要给予Everybody读取权限(在Windows资源管理器中右键单击文件)。我之前拒绝了Everybody的访问权限,因为我的命令行ssh客户端没有这样做就无法工作。
希望这能有所帮助。

我按照这个方法做,结果成功了... 我正在使用 Eclipse 捆绑的 STS 中的 AWS 工具包。在按照这个方法时,我的路径中有一个 .ssh 但是我点击了浏览并“重新选择”了正确的文件夹。然后它就开始工作了。 - Koffeeaddict4eva

2
我发现默认的SSH2目录分配在“首选项 > 通用 > 网络连接 > SSH2 > 通用 > SSH2主目录”中,其主目录是“C:\Users\username\ssh”,而不是默认的带有前导点“.” 的“C:\Users\username\.ssh”目录。
使用“浏览”按钮可以确保选择正确的目录。
如果这与您相关,则更改指定的目录就足以消除错误消息。

此外,如果您没有使用 id_rsa 作为私钥文件名,您还需要在上述对话框中使用“添加私钥...”来添加正确的文件名。 - Anticom

1

我认为这个错误信息有点通用。我的猜测是插件只是通过底层命令(可能是ssh,因为在成功连接后执行失败的第一个命令很可能是ls)捕获异常并显示自己的消息(“执行ls命令”)。因此很难给出一个有效的答案。我尝试了丹尼尔的答案,但对我没有用。

所以我深入挖掘并尝试手动克隆存储库:

git clone username@host.path_to_repo

它运行得很好。

通过这样做,您可以测试您的身份验证方法是否符合您的期望,并且您的.ssh/config也很漂亮。

知道我可以连接后,我认为错误一定是在Eclipse/EGit中。例如,我认为项目导入向导中的身份验证方法可能会干扰。(在路径前面放置ssh://可能会干扰.ssh/config - 无论如何:不是这个问题。)
或者Eclipse的SSH设置可能有误:窗口-->首选项-->常规-->网络连接-->SSH。哦,我的一些密钥没有列出来。添加并重新启动:同样的错误->沮丧。所有其他设置看起来都很好。我找不到任何好的理由。

此外,我的连接不是最好的,因此每次连接尝试都需要很长时间。绝望地重新检查了窗口-->首选项-->团队-->Git-->,KABAMM!我发现了实际上最初我认为可能是麻烦制造者的设置。

Remote connection timeout (seconds): 30

就像我所说的,相比于闪电般快速,我感觉更像是一只蜗牛,而且在服务器响应到达之前就放弃了 git-plugin。至少这是我的假设,因为自从我将值设置为 120 后,我有更多的时间喝茶,当我回来时,所有的分支都准备好克隆了 :)


1

当您在Eclipse中生成RSA SSH密钥时:

Windows > Preferences > General > Network.. > SSH2 > Key Management选项卡...

您应该将其保存为私钥,然后继续。这解决了我的问题。


1

我的回答是针对同样的异常,但是使用SSH协议进行克隆。

我在一个工作空间中使其正常工作,但在另一个工作空间中无法正常工作。我也可以从命令行克隆存储库,因此很明显是Eclipse配置问题。

我比较了两个工作空间中的配置文件。解决问题的方法在于: .metadata.plugins\org.eclipse.core.runtime.settings\org.eclipse.jsch.core.prefs

其中有一个指向SSH目录的路径: SSH2HOME=C\:\Users\username\ssh

正确的路径应该在ssh前面加上一个点: SSH2HOME=C\:\Users\username\.ssh

不知道怎么会出现这种问题,但请确保ssh主目录的路径是正确的。


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