2013-06-19 230 views
1

我真的坚持这一点。我在哈德森创造了一份工作,并以与其他工作相同的方式进行了配置。我的项目和构建交付物存在于Git中。 但每次我试图建立它我收到以下错误:无法克隆存储库

Cloning repository origin 
$ git clone -o origin [email protected]:xyzw/myproject.git /var/lib/hudson/jobs/myjob/workspace 
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:xyzw/myproject.git 
ERROR: Cause: Error performing git clone -o origin [email protected]: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) 
其他线程

,一些人建议创建通过登录不同的公私密钥对的詹金斯用户,但我不知道怎么在我的终端做到这一点。我的意思是我知道如何使用'sudo'命令以不同的用户身份登录,但我不认为人们正在使用sudo来建议这样做。

非常感谢。

回答

3

您可能需要设置从hudson服务器到git服务器的无密钥SSH访问。要这样做请按照下列步骤操作:

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

这听起来很愚蠢,但我第一步感到困惑。其余的步骤看起来很完美。当你说作为哈德森用户登录哈德森系统时,是否意味着在我的机器上创建一个名为“jenkins”的用户,或者通过界面和我的常用ID和密码登录到我公司的哈德森帐户。非常感谢帮助我。 – Ashish

+0

在安装了hudson的系统上,以用户身份登录,哈德逊进程被配置为运行。你想要做的就是设置它,这样哈德森进程就可以通过无密钥ssh对git服务器进行身份验证,并且要做到这一点,运行哈德森进程的帐户需要拥有私钥。 – mjk