2010-03-03 15 views
6

Prima che qualcuno mi spari per questo - ho già controllato ogni thread appropriato e ancora non ho trovato una soluzione al mio problema.Problema di clonazione/recupero del repository usando il plugin Git per Hudson su Windows

Ho Hudson con git plugin installato su server Windows (non è la mia scelta) e Hudson funziona come un servizio. Git/bin si trova sul percorso. Tuttavia non posso clonare il repository. Ecco una visualizzazione abbreviata del output della console:

Started by user anonymous 
Checkout:workspace/C:\.hudson\jobs\sdf\workspace - [email protected] 
Last Built Revision: Revision 74200b32314231a5efdadd87bf36b42ec145c720 (origin/master) 
Checkout:workspace/C:\.hudson\jobs\sdf\workspace - [email protected] 
Fetching changes from the remote Git repository 
Fetching upstream changes from ssh://git.mccannlondon.co.uk/git/mccann_admin 
[workspace] $ "C:\Program Files\Git\bin\git.exe" fetch -t ssh://git.mccannlondon.co.uk/git/mccann_admin +refs/heads/*:refs/remotes/origin/* 
The server's host key is not cached in the registry. You 
have no guarantee that the server is the computer you 
think it is. 
The server's rsa2 key fingerprint is: 
ssh-rsa 2048 f1:48:2a:0a:d9:18:cf:2e:f2:8c:b3:25:7f:34:d5:34 
Connection abandoned. 
fatal: The remote end hung up unexpectedly 
ERROR: Problem fetching from origin/origin - could be unavailable. Continuing anyway 

Così sembra che ho bisogno di autenticare l'host però io non sono sicuro perché Hudson sta iniziando il lavoro come utente anonimo quando ho impostato l'amministratore come proprietario della il servizio hudson.

Qualcuno sa:

  • a) come cambiare utente corsa di Hudson? oppure
  • b) connettersi al computer di rimozione con lo stesso account utente utilizzato da hudson per consentire a hudson di recuperare?

Se questo è stato pubblicato prima delle scuse, ma ho trascorso alcune ore a cercare e non ho trovato nulla.

Grazie

Lewis

+0

stai usando stucco o OpenSSH? – TheDon

risposta

4

Questo può essere correlato alla questione Git, Can’t clone repo on windows

Il problema è che msysgit inizia PLINK in background, cioè il terminale non è in realtà collegata all'ingresso di Plink. Ciò significa che non puoi semplicemente digitare nulla in PLink.

È sufficiente connettersi al server una volta utilizzando PLink o PuTTY, rispondere Sì e da quel momento in poi, non verrà più richiesto.

Il tutorial da cletus può essere utile pure.

Una buona descrizione del problema può essere trovato in this blog entry

il problema è che Hudson è un servizio e viene eseguito con l'utente "Local Service Account".

Il passaggio successivo è aggiungere manualmente la traccia alla cache (un file) perché so che si può fare in Linux.
Ancora una volta, Windows non ha questa cache come un file ma utilizza il registro.
La ricerca nel registro ha trovato una voce per il mio utente (che aveva precedentemente effettuato l'accesso al repository e aggiunto al footprint della cache) in cui la traccia è stata memorizzata e copiata in HKEY_USERS in modo che gli utenti possano accedervi.

La voce è questa:

Key Name: HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys 
Class Name: NO CLASS 
Last Write Time: 23.01.2009 - 18:35 
Value 0 
Name: [email protected]:bla_bla.com 
Type: REG_SZ 
Data: 0xb477b... 

Dalla riga di comando, è possibile aggiungere facilmente la chiave come segue:

reg add HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys /v [email protected]:bla_bla.com /d 0xb477b... 

Ora Hudson, eseguire come servizio, vai felicemente e senza intoppi al repository dove il codice.

+0

Aveva questo problema da client e riga di comando, e ha provato il trucco di stucco, e ha funzionato. Grazie! – Ingvald

1

"avviato da anonimo" indica all'utente che Hudson ha iniziato il lavoro. Se non hai creato alcun utente Hudson, tutto viene avviato da "anonymous"

Non è correlato a quale utente del sistema operativo sta eseguendo il processo.

0

Hai chiesto come modificare l'utente in cui Hudson viene eseguito: è necessario modificare il servizio (Pannello di controllo-> Strumenti di amministrazione-> Servizi, fare doppio clic sul servizio Hudson e modificare "Accedi" a "Questo account").

volta che l'account è messa a punto mi assicuro che il server git è di MinGW (di Git Bash) ~ Hudson/.ssh/known_hosts, e che c'è un file ~ Hudson/.ssh/identity in atto. L'unico avvertimento che ho è che se Cygwin è installato sulla scatola devi assicurarti che% CYGWIN% sia vuoto, altrimenti vedrai errori di autorizzazione chiave nei log di Hudson. La mia raccomandazione è di impostare semplicemente la variabile d'ambiente CYGWIN su empty in Hudson.

0

mi capita di incontrare lo stesso problema e dopo il plug-in di controllo git, http://wiki.hudson-ci.org/display/HUDSON/Git+Plugin

Si afferma per cambiare il percorso git a/usr/bin/git in ambiente globale e config il nome utente git

Ed fissa il mio problema

Spero che funziona per voi pure, tra l'altro, io uso ubuntu, ma dovrebbe essere lo stesso

+0

non è sufficiente per il plugin hudson. –

+0

Se la 'hudson - unix box' non ha il comando git, l'operazione relativa a' git' fallisce in 'hudson'? –

Problemi correlati