如何在TeamCity从SSH Git存储库获取更改时解决超时异常

Gra*_*meF 9 git ssh teamcity gitolite

我已经将Git存储库从网络上的共享文件夹移动到运行gitolite的SSH服务器.我为TeamCity添加了一个公钥/私钥以供使用,并将VCS根指向它.这一切都正常,因为测试连接成功,我的构建配置显示挂起的更改.

但是,当TeamCity尝试获取这些挂起的更改时,我收到以下错误:

'git fetch' command failed.
exception: Timeout exception
Run Code Online (Sandbox Code Playgroud)

切换到详细日志记录我发现它在90秒后超时 - 我认为在正常情况下,获取这些更改只需要几秒钟.

自从我开始尝试解决问题以来,我已将VCS根目录更改为"默认私钥",并添加了所需的.ssh文件夹以及config,id_rsa和known_hosts文件.我在日志中看到了指纹和密码消息,直到我将必要的东西放在这些文件中,现在我的服务器又回来再次给出Timeout异常,就像我在VCS根目录中指定密钥一样.

如果我从命令行运行Git,我可以在没有任何提示的情况下克隆存储库(当我按上面设置.ssh文件夹时).这是来自不同的用户帐户,因为TC在默认的SYSTEM帐户下作为服务运行,但我不认为这是原因,因为我说我可以看到TC已经获取了对.ssh文件夹的更改帐户.

可能有什么不对?

man*_*lds 2

您已经为 TeamCity 服务器设置了密钥,但是您也为代理设置了密钥吗?这可以解释为什么在配置中测试连接可以工作,但在代理执行时却不起作用。

快速调试问题的方法:

在VCS设置中,更改VCS Checkout modeAutomatically on server并查看是否有效?

更新:

git clone您可以登录到 TeamCity 服务器并以用户身份从 git 存储库 运行手册吗teamcity?通过这种方式,您可以看到它正在运行,也可以保存为受信任的主机等。