我使用了Hudson(持续集成系统)和Git插件,在Tomcat Windows服务上运行。已安装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服务(Local System)的用户没有设置SSH密钥以克隆git存储库。
我的问题是,如何设置才能让git插件/msysgit知道在尝试克隆时使用特定的SSH密钥?我认为Pageant不会起作用,因为Tomcat服务正在作为“Local System”用户运行,但我可能错了。 我尝试了将Pageant设置为服务(使用runassvc.exe),传递适当的密钥,并将其作为“Local System”运行。 Tomcat/Hudson服务似乎无法从pageant服务中看到密钥。 还有其他设置密钥的技巧吗?
谢谢。
编辑:在 http://n4.nabble.com/Hudson-with-git-and-ssh-td375633.html 上的讨论表明,其他人也有类似的问题。 ssh-agent被建议,而且这个工具确实随着msysgit提供,但我不确定如何与Hudson服务一起使用它。 如果有人能填补空白,那将是很好的线索。 感谢 Peter 提供带有链接的评论。
此外,在 http://n4.nabble.com/questions-about-git-and-github-plug-ins-td383420.html 上的讨论从同样的问题开始。 我正在尝试重新启动该线程。