I am running my TeamCity 7 server and agent on MacOS. My repo is on github. I use ssh and I know that the authentication is correctly configured, because the test is successful.
The build works fine when I use VCS Checkout Mode "Automatically on server", however when I use VCS Checkout mode "Automatically on agent" I get this error.
[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
What am I missing?
Try adding teamcity.git.use.native.ssh=true as a config parameter into your build configuration.
It is what helped me solve a similar problem. I learned this trick from here.
What was not at all obvious to me is that the Default Private Key on the server is copied to the agent and used there. I tried first in vain to add the private key to the user the agent was running as (obviously on the agent machine). But then I added the private key to the user that was running TeamCity on the server machine, and then the Agent Side checkout started working.
I also used the
teamcity.git.use.native.ssh=true
property, but I don't think it helped with this particular problem.The only trace of this information was in this comment.