无法克隆存储库

时间:2013-06-19 19:44:08

标签: git github jenkins

我真的很困惑。我在Hudson创建了一份工作,并以与其他工作相同的方式进行配置。我的项目和构建可交付成果存在于Git中。 但是每当我尝试构建它时,我都会遇到以下错误:

Cloning repository origin
$ git clone -o origin git@github.com:xyzw/myproject.git /var/lib/hudson/jobs/myjob/workspace
ERROR: Error cloning remote repo 'origin' : Could not clone git@github.com:xyzw/myproject.git
ERROR: Cause: Error performing git clone -o origin git@github.com:xyzw/myproject.git /var/lib/hudson/jobs/myjob/workspace
Command returned status code 128: Cloning into /var/lib/hudson/jobs/myjob/workspace...
ERROR: Repository not found.
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:763)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:702)
    at hudson.FilePath.act(FilePath.java:756)
    at hudson.FilePath.act(FilePath.java:738)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:702)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1181)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:536)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
    at hudson.model.Run.run(Run.java:1374)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:467)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145) 

在其他线程中,有些人建议通过登录作为jenkins用户创建不同的私钥 - 公钥对,但我甚至不知道如何在我的终端中执行此操作。我的意思是我知道如何使用'sudo'命令以不同的用户身份登录,但我不认为人们建议使用sudo这样做。

非常感谢。

2 个答案:

答案 0 :(得分:3)

您可能需要设置从hudson服务器到git服务器的无密钥ssh访问。为此,请按照以下步骤操作:

  1. 以hudson用户身份登录hudson系统。
  2. 在终端窗口中输入ssh-keygen
  3. 将密码保留为空白
  4. 提供私钥和公钥对的文件名。
  5. 以git用户身份登录git系统。
  6. 将公钥从步骤4复制到git system
  7. 从终端运行以下命令,将hudson公钥添加到git授权密钥文件中。 cat {public key file} >> ~/.ssh/authorized_keys。如果authorized_keys文件已存在,则应首先备份该文件。
  8. 通过返回哈德森系统并尝试ssh {git system name}来测试。如果它工作,您应该能够连接而无需提供密码。然后尝试克隆存储库并重新构建。
  9. 如果不起作用,请确保从authorized_keys文件中删除密钥。

答案 1 :(得分:0)

詹金斯的git-plugin有一个已知的bug。

https://issues.jenkins-ci.org/browse/JENKINS-24368

上面的密钥文件的目录位置取决于您使用的是cygwin还是已安装的git包(即c:\ program files \ git)。 Jenkins将编写凭据文件,并且应该独立于奴隶。