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:// 协议?