2013-05-23 16 views
36

z poleceniem github mamJenkins zwrócony kod statusu 128 z github

ssh -T [email protected] 
Hi (MyName)! You've successfully authenticated, but GitHub does not provide shell access. 

moje połączenie z github jest ok, nie ma problemu, ale z Jenkins mam ten błąd

ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:Name-MysRepo/MyRepo.git 
hudson.plugins.git.GitException: Could not clone [email protected]:Name-MysRepo/MyRepo.git 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.clone(CliGitAPIImpl.java:219) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1001) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:942) 
    at hudson.FilePath.act(FilePath.java:904) 
    at hudson.FilePath.act(FilePath.java:877) 
    at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:942) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1369) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676) 
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581) 
    at hudson.model.Run.execute(Run.java:1575) 
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:241) 
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:Name-MysRepo/MyRepo.git /root/.jenkins/jobs/TestKRGDAOV01/workspace" returned status code 128: 
stdout: Cloning into '/root/.jenkins/jobs/TestKRGDAOV01/workspace'... 

stderr: Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

dlaczego ten problem z publickey Używam jenkins pod TomCat7/ubuntu 12 pomoc proszę

Odpowiedz

28

Ten błąd:

stderr: Permission denied (publickey). fatal: The remote end hung up unexpectedly

wskazuje, że Jenkins próbuje połączyć się z niewłaściwym GitHub klucza ssh.

Powinieneś:

  1. Ustal użytkownika, który działa jako Jenkins, np. 'build' lub 'jenkins'
  2. Zaloguj się na hoście jenkins, który próbuje wykonać klon - to znaczy nie loguj się do mastera, jeśli dany węzeł faktycznie wykonuje kompilację.
  3. Wypróbuj ssh do github - jeśli to się nie powiedzie, to trzeba dodać właściwego klucza do /.ssh
3

W moim przypadku musiałem dodać klucz publiczny do mojego repo (na Bitbucket) i użyj git klon raz przez ssh, aby odpowiedzieć "tak" na pytanie "znany host" po raz pierwszy.

8

Aby sprawdzić są następujące:

  1. jeśli prawo klucza publicznego (id_rsa.pub) zostanie wysłany do git-serwer.
  2. jeśli prawy klucz prywatny (id_rsa) zostanie skopiowany do /var/lib/jenkins/.ssh/
  3. , jeśli plik known_hosts zostanie utworzony w folderze ~/.ssh. Wypróbuj ssh -vvv [email protected], aby wyświetlić dzienniki debugowania. Jeśli coś pójdzie dobrze, github.com zostanie dodany do known_hosts.
  4. jeśli zgoda id_rsa jest ustawiony na 700 (chmod 700 id_rsa)

Po wszystkich kontroli, spróbuj ssh -vvv [email protected].

+0

pkt 3 tej odpowiedzi konkretnie rozwiązać mój problem. Jedną z sugestii, którą chciałbym dodać, jest upewnienie się, że su to jenkins, aby element 3 zmienił/utworzył poprawny plik known_hosts dla konta Jenkins.Zrobiłem to uruchamiając ** sudo su -s/bin/bash jenkins ** zgodnie z informacjami podanymi w http://stackoverflow.com/a/18081006/291612 –

+0

https://stackoverflow.com/questions/44522862/repostiory -not-in-git-jenkins? noredirect = 1 # comment76037665_44522862 Otrzymuję inny błąd .. i folder Jennkins nie istnieje w folderze var/lib .. Czy ktoś może pomóc –

0

Usunąłem mój projekt (folder główny) i utworzyłem go ponownie. To był najszybszy i najprostszy sposób w moim przypadku.

Nie zapomnij zapisać wszystkich zmian, zanim usuniesz projekt!

0

Również upewnić używasz url ssh GitHub a nie https

Powiązane problemy