我需要在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。
推荐的解决方案是什么?
答案 0 :(得分:9)