14

我在 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

我错过了什么?

4

2 回答 2

27

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

这就是帮助我解决类似问题的原因。我从这里学到了这个技巧。

于 2013-02-21T00:00:51.427 回答
2

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

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

此信息的唯一痕迹是在此评论中。

于 2013-11-22T09:38:37.547 回答