如何在TeamCity构建步骤中设置SSH身份验证的git命令

时间:2015-11-25 13:44:47

标签: git ssh teamcity ssh-keys teamcity-9.0

我需要在TeamCity构建步骤中执行git命令。

这些git命令需要为git repo使用基于SSH的url,以便作为git服务器的特权用户进行身份验证(因为这些git命令实际上会修改git repo,而不仅仅是读取它)。 p>

我知道this question

我已经在VCS结帐模式“自动代理”。使用ssh正确配置了VCS root并且运行良好。

但是,作为stated in the documentation,TeamCity

  

暂时将密钥保存在代理的文件系统中,并在git fetch / clone完成后将其删除。

因此,即使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。

推荐的解决方案是什么?

1 个答案:

答案 0 :(得分:9)

Teamcity 9.1引入了一项名为SSH Agent的新功能,允许您使用服务器存储的SSH密钥建立代理端SSH连接:

enter image description here

请参阅What´s New in TeamCity 9.1