2015-11-25 70 views
7

我需要在TeamCity構建步驟中執行git命令。如何在TeamCity構建步驟中設置SSH認證的git命令

這些git命令需要爲git repo使用基於SSH的url,以便作爲git服務器的priviliged用戶進行身份驗證(因爲這些git命令實際上會修改git repo,而不僅僅是讀取它)。我知道this question

我已經有VCS結賬模式「自動代理」。 VCS根目錄已經正確配置了ssh並且運行良好。

然而,隨着stated in the documentation,TeamCity的

暫時保存代理的文件系統上的鑰匙和後混帳取中刪除/克隆完成。

因此,即使TeamCity在代理端結帳期間正確使用了SSH密鑰,該密鑰在構建中稍後也不會被訪問。

但是我真的很想用這個鍵!

的Git命令產生的輸出是:

[06:12:29][Step 3/4] Permission denied (publickey). 
[06:12:29][Step 3/4] fatal: Could not read from remote repository. 
[06:12:29][Step 3/4] 
[06:12:29][Step 3/4] Please make sure you have the correct access rights 
[06:12:29][Step 3/4] and the repository exists. 

我已經證實,known_hosts文件存在幷包含相應的公共密鑰。我也確認C:\Users\systeamcityagent\.ssh不包含任何私鑰(如預期的那樣)。

我正在運行TeamCity Enterprise 9.1.3。

這是什麼推薦的解決方案?

+0

你得到這個工作?我處於類似的情況,我很難讓ssh代理與我的git push一起工作。 – Bronumski

回答

8

的TeamCity 9.1引入了一個新的功能叫做SSH代理,允許您使用Server存儲SSH密鑰建立代理端SSH連接:

enter image description here

What´s New in TeamCity 9.1

+1

您可以擴展代理或密鑰在命令行中的使用方式嗎?我仍然很難得到這個工作。 – Bronumski

+1

查看[官方文檔](https://confluence.jetbrains.com/display/TCD10/SSH+Keys+Management),這裏有很好的解釋。你需要對SSH密鑰有一些基本的瞭解,但這是關於它的。 – Mecaveli

相關問題