将项目推送到远程 TFS 服务器时出现“不支持身份验证”错误



我正在尝试将我的代码从Eclipse推送到我的组织TFS(Team Foundation Server)中的git。我已经按照链接 https://www.visualstudio.com/en-us/docs/git/share-your-code-in-git-eclipse 推送代码。但是在将分支推送到 tfs 服务器时出现错误。

    org.eclipse.jgit.errors.TransportException: http://***.*******.*******.***:****/tfs/****/****/**********/***/********: authentication not supported
    at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:488)
    at org.eclipse.jgit.transport.TransportHttp.openPush(TransportHttp.java:387)
    at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:154)
    at org.eclipse.jgit.transport.Transport.push(Transport.java:1200)
    at org.eclipse.egit.core.op.PushOperation.run(PushOperation.java:197)
    at org.eclipse.egit.ui.internal.push.ConfirmationPage$2.run(ConfirmationPage.java:209)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)

我已经尝试了各种方法来找到完美的解决方案,但到目前为止我还没有找到任何方法。谁能帮我解决这个问题。还想强调 tfs 远程存储库已经有一个 readme.md 文件,这在推送代码时会导致任何问题。如果是,任何人都可以提供可行的解决方案。

注意:- 我需要可以在 Eclipse 中使用的解决方案来解决此问题。

常见问题解答

中解释了问题的可能解决方案:原因是 Eclipse 的 JGit 插件不支持 NTLM 身份验证,团队资源管理器无处不在(又名 TEE)通过 EGit 间接使用该插件。TFS 2015 RTM 及更高版本的可能解决方案:

  • 在 TFS 上启用 HTTP 基本身份验证(在 IIS 中); 这是服务器端更改;
  • 使用
  • CNTLM 克服 JGit 的限制并正确使用 NTLM 身份验证; 这是您可以在 Eclipse 安装上执行的客户端修改;
  • TFS 服务器上的 IIS 中启用 Kerberos 身份验证,如上述常见问题解答中所述;这已经是 TFS 2017+ 上的默认设置。

使用 TFS 2017 RTW 及更高版本,您可以创建范围至少为 Code (read and write) 的个人访问令牌,然后您可以使用它而不是 Eclipse EGit 配置中的密码。

安装 TortoiseGit,执行 Pull... 和 Push...。在 Eclipse 中重试。为我工作。

最新更新