2012-05-31 56 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