Teamcity 到 Github 的 List remote refs 失败,jgit 报未授权错误。

22

在同一台计算机上使用相同的凭据使用Github Windows工作良好,可以进行拉取/克隆操作。

但是,在同一台计算机上安装为Windows服务的TeamCity会返回以下错误。

List remote refs failed: org.eclipse.jgit.errors.TransportException: https://github.com/my-private-repo.git: not authorized
11个回答

28
在TeamCity中,在项目VCS根目录中,如果认证方法基于ssh公钥/私钥,则获取URL应该像这样:git@github.com:.../repository.git。在获取URL中使用https://会导致错误消息如下所示:

List remote refs failed: org.eclipse.jgit.errors.TransportException..


我尝试过使用ssh和https,但仍然出现错误。 “List remote refs failed: org.eclipse.jgit.errors.TransportException: https://gitlab.com/test-everyone/test-devops/test-it-processes.git: authentication not supported” 我的代码在GitLab上。 - Rajat jain
1
在我的情况下,我的仓库不使用用户名/密码进行身份验证,而是使用用户名/令牌。 - SidJ

5
在Bitbucket中,我通过在设置下创建一个应用程序密码,并使用该应用程序密码而不是我的Bitbucket密码来解决了这个问题。

保佑你...这些是剩余的必需字符 - Red Bottle

3

我曾经遇到过同样的问题,并通过在Github中创建个人访问令牌并将其用作TeamCity密码来解决它。


2

我在Stash(=Bitbucket服务器)遇到了同样的错误,解决方法是在Stash中给TeamCity指定的用户授予访问存储库的权限。权限是针对每个存储库的。


可以确认这个方法同样适用于GitLab。错误信息是“列出远程引用失败:无法找到仓库(仓库URL)/git-upload-pack未找到”。 - Mark Allen

2

如果其他人遇到类似问题,可能是GitHub中的用户凭据出了问题,但我还没有找到具体的设置。

在TeamCity中使用不同的用户可以解决问题,即使作为有问题的用户,我也可以在命令行上执行clone/fetch/pull和ls remote操作。


1
你可以使用SSH密钥来访问Azure TFS GIT URL,或者通过勾选“启用替代凭据”来修改“替代凭据”中的设置,以便只需使用用户名和密码即可访问存储库。请注意保留HTML标签。
首先,在Azure DevOps中进入你的项目:

enter image description here

然后在右侧菜单中选择“安全性”:

enter image description here

最后在左侧菜单中选择“备用凭据”,并单击“启用备用凭据身份验证”,然后输入您的用户名和密码:

enter image description here

请注意,这种方法比使用SSH密钥不够安全。

1

对于遇到使用Bitbucket时出现的问题的任何人。

自2022年3月起,您不能再使用个人凭据将您的应用程序连接到Bitbucket。您需要创建一个应用密码(请参见此处如何操作)。

标识符将不是您的电子邮件地址,而是您的Bitbucket用户名。


0

也许与此不太相关,但您可能是通过关键词“teamcity、github、list remote refs failed”来到这里的。

对于那些服务器在代理后面的人,请根据连接超时:github.com为TeamCity服务器设置代理。

主要思路是:

为了使TeamCity能够使用代理,必须创建一个环境变量:

名称:TEAMCITY_SERVER_OPTS

值:-Dhttp.proxyHost=192.168.0.1 -Dhttp.proxyPort=80 -Dhttps.proxyHost=192.168.0.1 -Dhttps.proxyPort=80


0

我在一个托管在IIS上的git服务器上遇到了同样的错误。

问题出现在安装了IIS的“基本身份验证”后。之后,新的身份验证方法“基本身份验证”被启用(似乎是默认的)用于git服务器的网站。禁用“基本身份验证”解决了这个问题。


0

尝试使用本地git客户端使用相同的凭据进行推送/获取,这可能提供更多详细信息,这些信息可能与凭据有关。

这是对我的建议,因为TeamCity显示了相同的错误,而这些解决方案都没有起作用。


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