一尘不染

如何使用SSH密钥配置Hudson和git插件

tomcat

我的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
  1. 从命令行运行git clone -o origin git @ hostname:project.git“ e:\ HUDSON_HOME \ jobs \ Project Trunk \ workspace”可以正常工作。
  2. 我已经确认我的问题与Hudson git clone错误不同,因为git在路径中,并且在Hudson的Configure System页面上我没有收到有关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服务结合使用。不过,如果有人可以填补空白,这是一个很好的线索。感谢Peter对链接的评论。

另外,在http://n4.nabble.com/questions-about-git-and-github-plug-ins-
td383420.html上的讨论也从同一个问题开始。我正在尝试恢复该线程。


阅读 244

收藏
2020-06-16

共1个答案

一尘不染

我们使用Hudson,并使用ssh键从git签出源代码。但是,实际上我们在Ubuntu服务器上有Hudson。Hudson的SSH密钥对位于~hudson/id_rsa~hudson/id_rsa.pub

因此,针对Windows安装调整我们的建议:

我们团队中基于Windows的开发人员使用MSysGit,并通过ssh上的git定期检出代码-但不使用Putty /
Pageant。由于登录存在一些协议错误,我们发现Pageant很痛苦。相反,他们将git配置为使用openSSH(这是安装期间的选项之一)。然后,他们的公钥/私钥对生活在里面~username/id_rsa~username/id_rsa.pub并且一切正常。

因此,我建议将您的git配置更改为使用OpenSSH而不是Pageant。如果没有其他问题,您将不必担心开始选美。

您可以使用PuttyGen生成密钥。但是,如果您使用的是OpenSSH而不是选美,则需要导出合适的私钥(从PuttyGen顶部的菜单之一)并将其保存为id_rsa,然后从PuttyGen的GUI复制并粘贴公钥(它会显示,但不会为OpenSSH保存合适的版本,并将其另存为id_rsa.pub。这是因为Putty与OpenSSH使用的密钥格式略有不同。

当然,也可以选择将hudson服务器始终托管在ubuntu服务器上(真实服务器或通过VirtualBox)。

2020-06-16