2010-08-18 14 views
8

Se c'è qualcuno che può aiutarmi a capire perché questo repository git non è clonazione sarebbe fantastico.Hudson git error ssh

Runt lo stesso comando dal terminale funziona. Spero di scoprire dove posso inserire la password in modo che il server possa autenticare la connessione.

Per favore e grazie.

ERROR: Error cloning remote repo 'origin' : Could not clone ssh://[email protected]/usr/local/repository/kdm/git/TestCaseGenerator.git 
ERROR: Cause: Error performing /usr/bin/git clone -o origin ssh://[email protected]/usr/local/repository/kdm/git/TestCaseGenerator.git /var/lib/hudson/jobs/KDM_Test_Case_Generator/workspace 
Command returned status code 128: Initialized empty Git repository in /var/lib/hudson/jobs/KDM_Test_Case_Generator/workspace/.git/ 
No protocol specified 

(ssh-askpass:12523): Gtk-WARNING **: cannot open display: :0.0 
Host key verification failed. 
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:719) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:658) 
    at hudson.FilePath.act(FilePath.java:753) 
    at hudson.FilePath.act(FilePath.java:735) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:658) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1046) 
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479) 
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411) 
    at hudson.model.Run.run(Run.java:1248) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:129) 
+0

lo hai eseguito come hudson dal terminale o come te stesso? –

+0

Hudson non può stabilire una connessione ssh perché la chiave è protetta da una password. – Rudi

risposta

8

è necessario impostare una relazione di trust SSH tra il pronti contro termine e il server git.

Hai solo bisogno di farlo una volta.

In breve si va qs segue:

Accedere come l'utente che esegue Hudson

ssh-keygen 

utilizzare una password vuota

Questo crea 2 file in .ssh: id_dsa e id_dsa.pub .

cat .ssh/id_dsa.pub 

Ora copia il linguaggio senza senso che rappresenta la chiave pubblica.

ssh repo-server 

confermare che si desidera aggiungere la chiave host per known_hosts. Accedi utilizzando l'account che accede al repository.

cat - >>.ssh/authorized_keys 

(Assicurati di 2> s 'o rischia l'ira dei vostri colleghi) quindi incollare il senza senso appena copiato.

Disconnettersi e verificare è ora possibile ssh senza dover fornire una password.

Questo funziona per host basati su Unix. Per github, gitosi, windows il processo è simile, ma ovviamente diverso.

Hudson ora dovrebbe essere in grado di connettersi.

+0

Grazie! Per un po 'stavo lottando per non capire perché la mia chiave SSH non funzionava, finché non ho letto le tue istruzioni, in particolare la riga "Accedi come utente che esegue hundson" :-) – machineghost

0

Se questo dovesse essere url:

ssh://[email protected]:/usr/local/repository/kdm/git/TestCaseGenerator.git 

?

(mancante due punti dopo il ".net")

+0

Se si specifica quale protocollo utilizzare "esplicitamente", ":" non è necessario. –

0

È necessario verificare quanto segue:

  1. Si utilizza le chiavi SSH dell'utente che correva Hudson daemon. Ad esempio, se utente = hudson, dovresti accedere come hudson e generare chiavi ssh
  2. Hai caricato la tua chiave pubblica sul tuo server (github, assembla) dal file .ssh/id_rsa.pub corretto, ad es.per lo stesso utente che ha eseguito Hudson demone
  3. Hai aggiunto RSA fingerprint del server al vostro .ssh/known_hosts file di
0

Se tutto dovrebbe essere giusto, ma non è strangly di lavoro, assicurarsi che il progetto è di rally a costruire sullo slave hai configurato.