TeamCity 代理错误“未能对代理执行结帐”

Posted

技术标签:

【中文标题】TeamCity 代理错误“未能对代理执行结帐”【英文标题】:TeamCity agent error "failed to perform checkout on agent" 【发布时间】:2012-06-06 03:36:49 【问题描述】:

我在 MacOS 上运行我的 TeamCity 7 服务器和代理。我的仓库在 github 上。我使用 ssh 并且知道身份验证配置正确,因为测试成功。

当我使用 VCS Checkout 模式“自动在服务器上”时,构建工作正常,但是当我使用 VCS Checkout 模式“自动在代理上”时,我收到此错误。

[13:40:35][Updating sources] Failed to perform checkout on agent: '/usr/bin/git fetch --progress origin +refs/heads/master:refs/remotes/origin/master' command failed.
stderr: java.io.IOException: Authentication failed
    at org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:275)
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:159)
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:139)
fatal: The remote end hung up unexpectedly

我错过了什么?

【问题讨论】:

代理上有正确的 ssh 密钥吗? VCS 根设置中的“测试连接”仅测试 TeamCity 服务器和您的存储库之间的连接。 我想我没有,但是我如何弄清楚代理的帐户?我可以更改代理工作的帐户吗? 代理账号是启动代理的账号。所以是的,你可以改变它。 【参考方案1】:

对我来说完全不明显的是,默认私钥服务器上被复制到代理并在那里使用。我首先尝试将私钥添加到代理运行的用户(显然是在代理机器上),但没有成功。但随后我将私钥添加到在服务器机器上运行 TeamCity 的用户,然后代理端结账开始工作。

我也使用了teamcity.git.use.native.ssh=true 属性,但我认为它对解决这个特殊问题没有帮助。

此信息的唯一踪迹是this comment。

【讨论】:

【参考方案2】:

尝试将 teamcity.git.use.native.ssh=true 作为配置参数添加到您的构建配置中。

它帮助我解决了类似的问题。我从here 学到了这个技巧。

【讨论】:

这个提示也为我修复了它。 这让我很开心!非常感谢! 如果你有 Putty SSH 密钥,这个 link 也可能有用(请参阅评论线程) 这为我修复了它,即使我的构建日志根本没有说明身份验证失败!

以上是关于TeamCity 代理错误“未能对代理执行结帐”的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 TeamCity 构建代理以通过 SOCKS 代理使用 git 和 git:// 协议?

在同一台计算机上运行多个 TeamCity 代理?

如何在Teamcity中设置超时和活动的多运行构建器

在远程 teamcity 构建代理上运行 selenium 自动化测试

Teamcity 构建代理工作目录未更改

TeamCity 控制台代理