从以前的工作安装中突然从 eclipse egit 中获得“没有更多可用的身份验证方法”

Dav*_*arr 5 eclipse git

我已经安装 Eclipse 有一段时间了。几周前我升级到 2018-12。我已经为我的所有 git 存储库(集中存储在 BitBucket 服务器中)设置了 ssh 身份验证很长时间了。它一直工作得很好。

今天,我不得不重新启动我的 Windows7 笔记本电脑以进行一些自动安装,这种情况每个月都会发生几次。

我重新启动了 Eclipse,突然发现我的所有 git 存储库都无法通过身份验证。我在日志中看到这个:

!MESSAGE ssh://git@.../....git: No more authentication methods available
!STACK 0
org.eclipse.jgit.api.errors.TransportException: ssh://git@.../.....git: No more authentication methods available
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:254)
    at org.eclipse.jgit.api.PullCommand.call(PullCommand.java:290)
    at org.eclipse.egit.core.op.PullOperation$PullJob.run(PullOperation.java:256)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.jgit.errors.TransportException: ssh://git@.../.....git: No more authentication methods available
    at org.eclipse.jgit.transport.sshd.SshdSessionFactory.getSession(SshdSessionFactory.java:249)
Run Code Online (Sandbox Code Playgroud)

然后我去了我的 Cygwin shell 中的本地存储库之一,并尝试了“git pull”。这工作得很好。

我最近所做的可能与此相关的唯一更改是,除了 Cygwin git 之外,我还安装了 Windows 版本的 git。我把它放在PATH的末尾。我不知道这会如何影响这一点,因为 Eclipse 正在使用 jgit。

更新

我想我刚刚解决了问题,但我不确定真正的问题是什么。

几周前,当我安装 2018-12 时,我想我注意到提到了即将对默认 ssh 客户端进行更改的内容。我注意到我目前准备使用 JSch,并且我认为发行说明说它会转移到“Apache MINA”,所以我决定现在改变它,看看它是如何工作的。这工作了几个星期。

刚才我尝试将该字段改回“JSch”,然后进行拉动。它工作得很好。可以肯定的是,我将其改回“Apache MINA”并再次尝试。还是失败了。将其改回“JSch”并且它正在工作。

我不知道这里发生了什么。

Lok*_*lli 5

今天发生在我身上......我不知道为什么会发生这种情况......我尝试删除eclipse并再次安装......再次出现同样的问题......我检查了所有设置,一切似乎都很好......错误信息不是很容易猜到的东西......

我做了什么

  • 我的SSH密钥不是默认的一个...我有一个文件夹叫githubinternaldeployed~/.ssh

  • 所以,在 eclipse 中,我进入Window > Prefrences -> Network -> SSH2了私钥,我已经给出了我的密钥的路径......但我没有改变SSH2 home目录......这是罪魁祸首......我稍后会告诉你为什么

    • SSH2 Home directory = ~/.ssh
    • path to private key = ~/.ssh/github/slokesh
  • 我更改了 ssh 客户端,Preferences -> Team -> git但每次都出现相同的错误...

所以,后来我又回到第2步,再有我改变了SSH2 home目录~/.ssh/githubpath to private keyslokesh然后它的工作...

我希望这会有所帮助...如果有什么不清楚的请发表评论...

我觉得他们抛出的错误信息可能更详细和清晰。此外,SSH2 home and private key path字段中应该有一个注释,因为它们采用的私钥路径是相对于SSH2 home. 但不幸的是,他们没有给...