【发布时间】:2011-01-27 17:16:26
【问题描述】:
我有 Hudson(持续集成系统)和在 Tomcat Windows 服务上运行的 git 插件。 msysgit 已安装并且 msysgit bin 目录位于路径中。 PuTTY/Pageant/plink 已安装,并且 msysgit 已配置为使用它们。
当我运行一个尝试克隆 git 存储库的作业时,我收到以下错误:
$ git clone -o origin git@hostname:project.git "e:\HUDSON_HOME\jobs\Project Trunk\workspace"
ERROR: Error cloning remote repo 'origin' : Could not clone git@hostname:project.git
ERROR: Cause: Error performing git clone -o origin git@hostname:project.git e:\HUDSON_HOME\jobs\Project Trunk\workspace
Trying next repository
ERROR: Could not clone from a repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
- 从命令行运行 git clone -o origin git@hostname:project.git "e:\HUDSON_HOME\jobs\Project Trunk\workspace" 没有错误。
- 我已经确认我的问题与Hudson git clone error 不同,因为 git 在路径中,并且我在 Hudson 的配置系统页面上没有收到有关 git 可执行文件的任何错误。
这让我相信问题在于拥有 Tomcat/Hudson Windows 服务(本地系统)的用户没有设置 SSH 密钥来克隆 git 存储库。
我的问题是,我该如何设置以便 git 插件/msysgit 在尝试克隆时知道使用特定的 SSH 密钥?我认为 Pageant 不会起作用,因为 Tomcat 服务以“本地系统”用户身份运行,但我可能错了。我尝试将 Pageant 设置为服务(使用 runassvc.exe),传递适当的密钥,并让它作为“本地系统”运行。 Tomcat/Hudson 服务似乎无法从选美服务中看到密钥。还有其他设置密钥的技术吗?
谢谢。
编辑:http://n4.nabble.com/Hudson-with-git-and-ssh-td375633.html 上的讨论表明其他人也有类似的问题。建议使用 ssh-agent,并且该工具确实随 msysgit 一起提供,但我不确定如何将它与 Hudson 服务结合使用。不过,如果有人可以填补空白,这是一个很好的线索。感谢彼得对链接的评论。
另外,http://n4.nabble.com/questions-about-git-and-github-plug-ins-td383420.html 的讨论也是从同样的问题开始的。我正在尝试恢复该线程。
【问题讨论】:
-
谢谢彼得。我也遇到了那个线程。我不确定如何在 Hudson 作为服务运行时使用 ssh-agent。我还希望自那次讨论以来已经开发出一种更正式的方法。我将编辑帖子以提及 ssh-agent。
标签: git tomcat windows-services ssh hudson