2015-02-03 17 views
6

Próbuję ustawić prywatne repo git na serwerze Jennkins. Zainstalowałem wtyczkę git, a także github. kiedy ustawić repo URL w Jenkins projekt ui błąd jestUstawianie projektu prywatnego repozytorium git na serwerze Jenkinsa

Failed to connect to repository : Command "git -c core.askpass=true 
ls-remote -h [email protected]:repo/project.git HEAD" returned 
status code 128: 
stdout: 
stderr: Permission denied (publickey). 
fatal: The remote end hung up unexpectedl 

co zrobiłem do tej pory:

  1. Moja użytkownik serwera i użytkownik Jenkin (oba są w tym samym serwerze) są różne. Chociaż wydaje mi się, że nie są ze sobą powiązane. użytkownik jenkins otrzymuje wszystkie credintial.

  2. Na moim serwerze pod nazwą var/lib/jenkins/.ssh (.ssh jest tworzony przeze mnie) dodałem klucz ssh. Klucz publiczny jest dodawany do repozytorium github.

  3. Dzięki zamianie użytkownika na jenkins mogę sklonować projekt za pomocą tego ssh. Więc myślę, że nie ma żadnego problemu z dodawaniem klucza publicznego.

Mam googleed problem. istnieje wiele rozwiązań. Wypróbowałem większość z nich. Ale wciąż nie ma rozwiązania. Prawdopodobnie czegoś mi brakuje.

Moje repo url jest coś takiego [email protected]: repo/project.git

Odpowiedz

2

Jeśli zestaw w /var/lib/jenkins/HOME wtedy mam nadzieję wszystko krok zostały wykonane pomyślnie :)

Wtedy jedna rzecz może zdarzyć się w Twoim przypadku. Podobnie jak w przypadku zmiany użytkownika za pomocą:

su jenkins 

To polecenie oznacza, że ​​użytkownik zostanie przełączony, ale katalog domowy będzie taki sam, jak katalog główny użytkownika root!

Musisz zmienić użytkownika, potwierdzając również, że określony dom użytkownika również jest włączony. W tym celu należy wykonać następujące czynności:

su -s /bin/bash jenkins 

Następnie należy wygenerować klucz publiczny ssh po raz kolejny lub po prostu zaktualizować znany host. To zadziała.

Related Link

1

To zależy co HOME jest ustawiony gdy Jenkins jest uruchomiony: git będzie wyglądać dla ssh (publicznych i prywatnych) klucze poniżej $ H OME/.ssh.

Po prostu dodaj krok kompilacyjny z echo $HOME, i upewnij się, że twój .ssh jest w tym folderze.

+0

Dziękuję za odpowiedź. Sprawdziłem katalog domowy użytkownika Jnkins. Nie ma klucza ssh. Stworzyłem ten klucz ssh pod /var/lib/jenkins/.ssh Więc powinienem utworzyć go w katalogu home/jenkins/.ssh? FYI, widziałem, że nie ma katalogu takiego jak jenkins/.ssh dla domu użytkownika jenkins. – Sazzad

+0

@Sazzad first: czy '$ HOME' jest ustawione na'/var/lib/jenkins/'kiedy Jenkins jest uruchomiony? – VonC

+0

@Sazzad proszę uruchomić prostą pracę z jednym krokiem kompilacji zawierającym 'echo $ HOME'. Dopóki nie wiesz, gdzie jest "HOME", nie ma sensu zgadywać. – VonC

Powiązane problemy