2012-05-31 33 views
11

我在MacOS上运行TeamCity 7服务器和代理。我的回购是在github上。我使用ssh,并且我知道验证配置正确,因为测试成功。TeamCity代理错误“未能对代理执行结账”

当我使用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 

我错过了什么?

+1

你的代理商有没有正确的ssh密钥? VCS根设置中的“测试连接”仅在TeamCity服务器和存储库之间测试连接。 – neverov

+0

我想我不知道,但我如何弄清代理人的账户?我可以更改代理人工作的帐户吗? – mishod

+0

代理的帐户是代理启动的帐户。所以是的,你可以改变这一点。 – neverov

回答

17

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

这是什么帮助我解决了类似的问题。我从here了解到这个技巧。

+0

这个提示也为我修好了。 – cheez

+0

这使我的一天!非常感谢你! –

+1

如果您拥有Putty SSH密钥,则此[链接](https://youtrack.jetbrains.com/issue/TW-52052#comment=27-2607007)也可能有用(请参阅评论主题) – sam9046

1

对我来说一点都不明显的是,服务器上的默认私钥被复制到代理并在那里使用。我第一次尝试将私钥添加到代理运行的用户身上(显然是在代理机器上)。但随后我将私钥添加到在服务器计算机上运行TeamCity的用户,然后代理端结帐开始工作。

我也使用了teamcity.git.use.native.ssh=true属性,但我不认为这有助于解决这个问题。

此信息的唯一痕迹在于this comment