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

标签 git ssh teamcity gitolite

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

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

'git fetch' command failed.
exception: Timeout exception

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

自从我开始尝试解决问题以来,我已将我的 VCS 根目录更改为“默认私钥”,并添加了包含配置、id_rsa 和 known_hosts 文件的所需 .ssh 文件夹。在我将必要的内容放入这些文件之前,我在日志中看到了指纹和密码消息,现在我的服务器再次返回超时异常,就像我在 VCS 根目录中指定 key 时一样。

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

有什么问题吗?

最佳答案

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

调试问题的快速方法:

在 VCS 设置中,将 VCS Checkout mode 更改为 Automatically on server 并查看它是否有效?

更新:

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

关于git - TeamCity 从 SSH Git 存储库获取更改时如何解决超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6985085/

相关文章:

node.js - 如何配置git,以便node_modules可以在本地进行版本控制,但在推送时被忽略?

hadoop - EMR集群如何连接JobTracker

svn - 颠覆,5 名开发人员小团队的最佳实践?

java - Java 生成的公钥和 ssh-keygen 生成的 key 之间的区别

linux - 期望错误处理 - spawn id 未打开

performance - 在TeamCity中进行多次并行构建后触发一次后续构建

mstest - Teamcity MSTest 10.0 没有合适的构建代理错误

git - 一个 Git 存储库,两个工作树

git - 无法在 github 中提交 : not able to connect port 443

Git:删除 repo 中的所有文件然后回滚提交有任何长期影响吗?