代码之家  ›  专栏  ›  技术社区  ›  David M. Karr

突然从以前的工作安装中获得“不再有可用的身份验证方法”

  •  0
  • David M. Karr  · 技术社区  · 6 年前

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

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

    !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)
    

    然后我去了我的cygwinshell中的一个本地存储库,尝试了一个“git拉”。这个效果非常好。

    我最近所做的唯一可能与此相关的更改是,除了Cygwin git之外,我还安装了Windows版本的git。我把它放在路的尽头。我看不出这有什么影响,因为Eclipse正在使用它。

    更新 :

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

    当我几周前安装2018-12时,我想我注意到了一个即将到来的对默认ssh客户端的更改。我注意到我现在准备使用JSch,并且我认为发行说明说它将移动到“apachemina”,所以我决定现在就更改它,看看它是如何工作的。好几个星期都没问题。

    刚才我试着把那个字段改回“JSch”,然后做一个拉。效果不错。为了确定,我把它改回了“apachemina”,然后再试一次。还是失败了。把它改回“JSch”就行了。

    我不知道这是怎么回事。

    0 回复  |  直到 6 年前
        1
  •  5
  •   Lokesh Sanapalli    6 年前

    今天发生在我身上。。。我不知道为什么会这样。。我尝试删除eclipse并重新安装。。。又是同样的问题。。。我检查了所有的设置,一切似乎都很好。。。这个错误消息不容易猜到。。。

    • 我的ssh密钥不是默认密钥。。。我有一个文件夹叫 github , internal deployed 里面 ~/.ssh

    • 所以,在《月蚀》中我去了 Window > Prefrences -> Network -> SSH2 在私钥中,我给出了我的密钥的路径。。。但我没有改变 SSH2 home 目录。。。这就是罪魁祸首。。我稍后会告诉你原因

      • SSH2 Home directory = ~/.ssh
      • path to private key = ~/.ssh/github/slokesh
    • 我在中更改了ssh客户端 Preferences -> Team -> git

    所以,我回到第二步,然后我换了衣服 目录到 ~/.ssh/github path to private key slokesh 然后成功了。。。

    我希望这有助于。。。如果有不清楚的地方请留言。。。

    SSH2 home and private key path 字段,因为它们所采用的私钥路径与 SSH2主页 . 但不幸的是他们没有给。。。