我无法连接到Jenkins的TFS 2015 git存储库。我一直收到以下错误:
Failed to connect to repository : Command "C:\Program Files\Git\bin\git.exe ls-remote -h -- https://tfsservername/tfs/DefaultCollection/_git/reponame.git HEAD" returned status code 128:
stdout:
stderr: Logon failed, use ctrl+c to cancel basic credential prompt.
fatal: Authentication failed for 'https://tfsservername/tfs/DefaultCollection/_git/reponame.git/'我的配置:
我尝试过不同的凭证组合。对于用户名,我做了域\用户名、用户名@域、用户名和密码,我使用了一个个人访问令牌和TFS站点密码。我尝试过的每一个组合都会返回“身份验证失败”。有人有什么建议吗?
更新:这是一些更多的背景。我正在尝试从我的Windows计算机连接到外部TFS服务器。服务器是一个工作服务器,我无法控制它。我将端口号添加到git中,得到了另一条错误消息。这就是我得到的:
Failed to connect to repository : Command "C:\Program Files\Git\bin\git.exe ls-remote -h -- https://tfsservername:8080/tfs/DefaultCollection/_git/portal HEAD"
returned status code 128: stdout:stderr: fatal: unable to access 'https://tfsservername:8080/tfs/DefaultCollection/_git/portal/': schannel:
next InitializeSecurityContext failed: SEC_E_INVALID_TOKEN (0x80090308)
The token supplied to the function is invalid在从这个TFS服务器下载自定义NuGet包时,我也遇到了类似的问题。我之前通过向NuGet.config文件添加凭据解决了这个问题。我使用的凭据是用户名和PAT,并为ValidAuthenticationTypes添加了一个'basic‘值。起作用了。在Jenkins中,使用相同类型的凭据不起作用。
发布于 2020-03-28 17:48:51
一个同事帮我弄明白了。这是DNS问题。我必须使用VPN连接到TFS服务器,因为它是私有工作服务器。我必须转到Control >>vEthernet Properties->Internet 4/ TCP/IP 4 Properties,然后转到高级TCP/IP设置。我选择了‘追加这些DNS后缀..’并添加了与我的TFS服务器相关的后缀。然后,在Jenkins中,我使用我的TFS用户名和密码作为凭据。没有错误信息。@PatrickLu-MSFT当你提到这可能是一个网络问题时,我开始思考。谢谢你的帮助。
发布于 2020-03-24 08:39:33
您使用的repo不需要包含额外的.git作为后缀。
就像https://tfsservername/tfs/DefaultCollection/_git/reponame一样
此外,您还可以尝试将身份验证与回购url类结合起来,例如:
对于此类身份验证失败的错误,如果您使用PAT令牌来处理带有内置TFS服务器的身份验证,请确保已关闭服务器上的基本身份验证。否则,您将得到返回的错误。
我们建议您在使用Azure DevOps服务器时始终关闭IIS身份验证。只有在必要时才能启用IIS基本身份验证。当在windows计算机上启用IIS基本身份验证时,它会阻止您使用个人访问令牌(PATs)作为身份验证机制。 https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/iis-basic-auth?view=azure-devops
对于TFS中的克隆url,应该是这样的:
git clone https://PAT@tfsservername:8080/tfs/Collectionname/Projectname/_git/GitReponame
如果所有这些仍然不起作用,请检查您是否支持代理。尝试暂时关闭代理。
如果问题与TFS方面或网络有关,其他方法可能有助于缩小范围。您可以直接从浏览器访问这些URL,如果有任何问题,请再次检查。
发布于 2020-03-24 13:29:35
如果生成服务器是windows机器,则Git for Windows使用windows使用Windows凭据管理器存储凭据。以构建代理帐户登录,并确保在TFS服务器的凭据管理器中添加如下条目

然后可以运行以下git命令,以确保它将使用凭据管理器。
git config --global credential.helper managerhttps://stackoverflow.com/questions/60814459
复制相似问题