【问题标题】:Hudson+Git clone failureHudson+Git 克隆失败
【发布时间】:2011-06-11 05:33:30
【问题描述】:

我们在 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 和任何解决方案失败,我将非常感激!!

【问题讨论】:

  • 我们有一个在 fedora 上运行的 git 服务器,并且有完美的工作偶尔会出现这个 128 错误。它们大部分都在运行,而且键都很好,但我们无法解释为什么有时 git 交互会像这样爆炸。

标签: git hudson windows-server-2003 putty openssh


【解决方案1】:

我一直想不通为什么 openSSH 不工作,但我终于用 PuTTY 搞定了一切。

我的解决方案如下: 我创建了一个名为:myplink.bat 的批处理文件,它将使用私钥执行 putty,并且不需要运行选美。 该文件的内容如下:

@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。 然后在哈德森,我去管理哈德森->配置设置->环境变量 我确保它已被检查,并补充说: 名称:GIT_SSH 值:c:\pathto\myplink.bat

我重启了hudson服务,终于成功了。

请注意,如果您的任何路径中有空格,这也可能会搞砸一些东西,所以请尽量让您的路径留有空间。

希望这可以帮助其他遇到 hudson+git+putty 问题的人。

【讨论】:

  • 谢谢!谢谢!!!从昨天晚上开始,我一直在为此苦苦挣扎。我找到了各种解决方法和建议,但这最终对我有用。完成后,我将跟进一篇文章,详细介绍使用 git 和 putty 在 Windows 上安装 jenkins 的端到端解决方案——据我所知,没有人发布完整的解决方案。
【解决方案2】:

您的 git 服务器上没有公钥。当以 'git' 身份登录时,从 hudson 服务器执行此操作。

ssh -v gitserver

研究输出。不应提示您输入密码。

如果你这样做了,或者有其他问题,你没有设置你的 ssh 密钥。

希望对你有帮助

【讨论】:

  • 我的 git 服务器上有公钥,没有任何密码提示。
【解决方案3】:

您必须检查以下内容:

  1. 您正在使用运行 hudson 守护程序的用户的 ssh 密钥。例如,如果 user=hudson,那么您应该以 hudson 身份登录并生成 ssh 密钥
  2. 您已从正确的 .ssh/id_rsa.pub 文件(即运行 hudson daemon 的同一用户)将您的公钥加载到您的服务器(github、assembla)
  3. 您已将服务器的 RSA 指纹添加到 .ssh/known_hosts 文件中

【讨论】:

    【解决方案4】:

    我在 linux(Ubuntu) 服务器上运行时遇到了同样的问题。这个链接(http://adhockery.blogspot.com/2009/11/git-and-hudson.html)解决了我的问题。

    以下文字是从链接中复制的。

    事实证明,Git 需要设置用户名,而 Debian 软件包在安装 Hudson 时创建的 hudson 用户没有。通过使用 sudo nano /etc/passwd 将 Hudson,, 添加到 hudson 用户的条目中轻松修复(如果您查看自己的条目,您应该会看到它需要去哪里)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-10
      • 2014-09-03
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多