我们在Windows Server 2003 Enterprise上使用Git + OpenSSH设置了Hudson,它运行良好了一段时间。 突然间,它总是在12%的克隆期间开始挂起,我们怀疑这些文件可能已经太大了。 (它仍适用于所有其他计算机,Windows Server 2003标准,Windows 7企业版),只有这一台服务器。
所以我们切换到Putty而不是OpenSSH,它从gitBash和gitExtensions开始工作,但仍然来自Hudson。 由于我已经读过有关plink正确加载ssh密钥的问题,我已经将GIT_SSH设置为一个脚本,该脚本将使用密钥加载putty,并且从gitBASH可以正常工作,但它仍然无法使用Hudson。
以下是使用PUTTY的失败输出:
Started by user anonymous
Checkout:workspace / <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/> - hudson.remoting.LocalChannel@1c57a92
Using strategy: Default
Last Built Revision: Revision 2a56d9738e7c0af810e70e2e2051c41bd44f4252 (origin/master) Checkout:workspace / <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/> - hudson.remoting.LocalChannel@1c57a92
GitAPI created
Cloning the remote Git repository
Cloning repository origin
$ C:\bin\Git\bin\git clone -o origin git@GITSERVER:project.git <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/>
ERROR: Error cloning remote repo 'origin' : Could not clone git@GITSERVER:project.git
ERROR: Cause: Error performing C:\bin\Git\bin\git clone -o origin git@GITSERVER:project.git <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/>
Command returned status code 128: Cloning into <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/...>
fatal: The remote end hung up unexpectedly
Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:809)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:740)
at hudson.FilePath.act(FilePath.java:756)
at hudson.FilePath.act(FilePath.java:738)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:740)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1171)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:480)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:412)
at hudson.model.Run.run(Run.java:1362)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:145)
我们对SSH协议不严格,只要它有效,如果有人可以告诉我为什么openSSH失败,或者为什么Hudson用putty和任何解决方案失败,我将非常感激!!
答案 0 :(得分:1)
我无法弄清楚为什么openSSH无法正常工作,但我最终确实使用了PuTTY。
我的解决方案如下: 我创建了一个名为myplink.bat的批处理文件,该文件将使用私钥执行putty,并且不需要运行pageant。 该文件中包含以下内容:
@echo off
c:\pathto\plink.exe -i c:\pathto\id_rsa.pub
打开一个gitbash提示符并将GIT_SSH更改为此路径只适用于该实例,以便为gitbash永久设置它我修改 c:\ pathto \ git \ etc \ profile并在最后添加:
export GIT_SSH=c:\pathto\myplink.bat
我也修改了 c:\ pathto \ git \ cmd \ git.cmd并添加:
@set GIT_SSH=c:\pathto\myplink.bat
这个固定的git bash,但是hudson仍然会失败,让我相信hudson的环境会因某种方式而改变git。 然后在哈德森,我去管理哈德森 - &gt;配置设置 - &gt;环境变量 我确定它已经过检查,并添加了: 名称:GIT_SSH 值:c:\ pathto \ myplink.bat
我重新启动了哈德森服务,它终于奏效了。
请注意,如果你的任何一条路径都有空格,那也可能搞砸了,所以尽量保持你的路径空间。
希望这可以帮助那些遇到hudson + git + putty问题的人。
答案 1 :(得分:0)
您的git服务器上没有公钥。以“git”身份登录时,从哈德森服务器执行此操作。
ssh -v gitserver
研究输出。不应该提示您输入密码。
如果您这样做或有其他问题,则表示您没有设置ssh密钥。
希望这会有所帮助
答案 2 :(得分:0)
您必须检查以下内容:
答案 3 :(得分:0)
我在linux(Ubuntu)服务器上运行时遇到同样的问题。这个链接(http://adhockery.blogspot.com/2009/11/git-and-hudson.html)解决了我的问题。
下面的文字是从链接中复制的。
事实证明,Git需要设置用户名,而安装Hudson时Debian软件包创建的hudson用户没有。通过使用sudo nano / etc / passwd将Hudson添加到hudson用户的条目中(如果你查看自己的条目,你应该看到它需要去的地方)。