2011-01-21 10 views
5

Uderzyłem w to od ponad dnia, doprowadza mnie to do szału!Hudson nie będzie ściągał z Git

  • mam Git zainstalowany na Win7 PC, i wybrano opcję PuTTYgen na zainstalować. Wygenerowałem klucze ssh używając klawiszy PuttyGen; Dodałem klucz ssh do mojego konta Git i powiązałem klucz prywatny w Pageant.
  • Ustawiłem GIT_SSH, aby wskazywało na mój plik putty plink.exe.
  • Użyłem Putty, aby połączyć do kodu, aby otrzymać & git, aby je zaakceptować jako znanych hostów.

mogę sklonować z konsoli, ale Hudson nie:

Fetching upstream changes from [email protected]:xxx/xxx.git 
[workspace] $ "C:\Program Files\Git\bin\git.exe" fetch -t [email protected]:xxx/xxx.git +refs/heads/*:refs/remotes/origin/* 
ERROR: Problem fetching from origin/origin - could be unavailable. Continuing anyway 
ERROR: Could not fetch from any repository 
FATAL: Could not fetch from any repository 
hudson.plugins.git.GitException: Could not fetch from any repository 
    ... 

Jeśli uruchomię dokładną komendę git w konsoli, to działa dobrze:

"C:\Program Files\Git\bin\git.exe" fetch -t [email protected]:xxx/xxx.git +refs/heads/*:refs/remotes/origin/* 

Próbowałem uruchomiony podłączyć bezpośrednio do GitHub:

plink -agent -v [email protected] 
Looking up host "github.com" 
... 
Pageant is running. Requesting keys. 
Pageant has 1 SSH-2 keys 
Using username "git". 
... 
Authenticating with public key "rsa-key-20110121" from agent 
... 
Hi xxx! You've successfully authenticated, but GitHub does not provide 
shell access. 

Potem próbowałem połączenie z kodaset:

plink -agent -v [email protected] 
m 
Looking up host "codaset.com" 
Pageant is running. Requesting keys. 
Pageant has 1 SSH-2 keys 
Using username "git". 
... 
Authenticating with public key "rsa-key-20110121" from agent 
... 
Opened channel for session 
Server refused to allocate pty 
Started a shell/command 
Error: Command is required. 
... 
Server sent command exit status 255 
Disconnected: All channels closed 

Tak więc, nieco inna odpowiedź od kodaseta niż od git. Jednak myślę, że może to być czerwony śledzia, ponieważ mam ten sam błąd, gdy próbuję połączyć się ze standardowym projektem git od Hudson.

ja również skonfigurować Go Server (CruiseControl jak było), i uzyskać podobny błąd, gdy próbuje się połączyć git stąd:

ERROR: FATAL ERROR: Disconnected: No supported authentication methods available 
ERROR: fatal: The remote end hung up unexpectedly 

co sprawia mi, że problem leży w zakresie uwierzytelniania, raczej niż szczegóły Hudsona ...?

Jak zwykle każda pomoc doceniona!

Odpowiedz

2

To może być problem z uprawnieniami. Możesz można klonować git na tej samej maszynie, ale domyślam się, że nie zrobiłeś tego jako ten sam użytkownik z Hudson. su do tego użytkownika, a następnie spróbuj ponownie. Może to narazić problem.

+1

Niezły, to ma sens, ponieważ działa, jeśli uruchomię hudson z konsoli, ale nie, jeśli prowadzę hudson jako usługę. Twoje zdrowie! – laura

0

Czy hudson działa na tej samej maszynie, z której można z powodzeniem pobrać? Jeśli nie, prawdopodobnie będziesz musiał wygenerować klucz ssh na komputerze , który również będzie miał nazwę i dodać go do swojego konta github.

Tak czy inaczej, pierwszym pytaniem (chyba, że ​​przegapiłem to w pytaniu) jest sytuacja, w której masz hudsona.

+0

Dzięki za odpowiedź. Mogę pomyślnie pobrać/sklonować z tego samego komputera, na którym działa Hudson. (W rzeczywistości próbowałem nawet ręcznie klonować w moim obszarze roboczym hudson, aby zobaczyć, czy mógłbym pomóc ... Nie działa ... – laura

0

Po długiej bitwie rozwiązałem to, uruchamiając Hudson z konsoli, zamiast jako usługę ... Nie idealne, ale w tym momencie w piątek jest wystarczająco dobre!

+1

Klucze ssh są zwykle specyficzne dla użytkownika. Jeśli byłeś uruchomiony jako usługa, możliwe jest, że działał pod innym kontem użytkownika (co spowodowało problem z uprawnieniami). – jerhinesmith

0

Otrzymałem błąd krytyczny SSH "odmowa uruchomienia serwera powłoki/polecenia", gdy wchodzę w interakcję z moją stroną wywoływaną za pośrednictwem aplikacji Putty Plink.exe

Zauważyłem, że problem polega na tym, że moje wywoływane urządzenie działa w trybie interaktywnym. Na przykład, po tym, jak połączyłem się ze stroną, do której dzwoniono, moje wezwane urządzenie poprosiło mnie o naciśnięcie dowolnego klawisza, aby kontynuować. Po naciśnięciu klawisza Enter i wpisaniu poleceń, muszę wpisać "exit", a następnie "Enter", aby wyjść z połączenia SSH.

Żeby było interakcji z abonenta, budowałem moje polecenia jak poniżej:

Uwagi: Używam kod PowerShell jako przykład.

$Commands= @" 

    show status 
    exit 
    exit 
"@ 

Należy zauważyć, że każda linia podziału w powyższym parametrze reprezentuje klawisz "Enter". Wtedy zdałem parametr polecenia do plink.exe jak poniżej:

$output = $Commands |.\Putty\plink.exe -auto_store_key_in_cache -l $UserName -pw $Password $CalledPartyIP -v 2>&1 

To przejdzie listę poleceń do Plink i wyjście verbose wynik do zmiennej $ wyjściowego.

Mam nadzieję, że to pomoże!

Powiązane problemy