我需要在TeamCity的构建步骤中执行git命令。
这些git命令需要使用基于SSH的URL来访问git存储库,以便作为特权用户对git服务器进行身份验证(因为这些git命令实际上将修改git存储库,而不仅仅是读取它)。
我知道这个问题。
我已经在“代理自动检出”模式下正确配置了VCS根,并且ssh工作正常。
然而,正如文档中所述,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。
针对此问题,建议采取什么解决方案?