我在MacOS上运行TeamCity 7服务器和代理。我的回购是在github上。我使用ssh,我知道验证配置正确,因为测试成功。
当我使用VCS Checkout模式“在服务器上自动”时,构建工作正常,但是当我使用VCS Checkout模式“Automatically on agent”时,我收到此错误。
[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
我错过了什么?
答案 0 :(得分:21)
尝试将teamcity.git.use.native.ssh = true作为配置参数添加到构建配置中。
这是帮助我解决类似问题的原因。我从here学到了这个技巧。
答案 1 :(得分:1)
对我来说显而易见的是,服务器上的默认私钥 被复制到代理并在那里使用。我首先尝试将私钥添加到代理运行的用户(显然在代理机器上)。但后来我将私钥添加到在服务器计算机上运行TeamCity的用户,然后代理端签出开始工作。
我也使用了teamcity.git.use.native.ssh=true
属性,但我认为这对这个特殊问题没有帮助。
此信息的唯一痕迹位于this comment。