2013-06-19 285 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