Programing

Jenkins는 github에서 상태 코드 128을 반환했습니다.

crosscheck 2020. 12. 2. 08:01
반응형

Jenkins는 github에서 상태 코드 128을 반환했습니다.


GitHub 명령으로 다음이 있습니다.

ssh -T git@github.com
Hi (MyName)! You've successfully authenticated, but GitHub does not provide shell access.

GitHub와의 연결은 정상이지만 (문제 없음) Jenkins에서는 다음 오류가 발생합니다.

ERROR: Error cloning remote repo 'origin' : Could not clone git@github.com:Name-MysRepo/MyRepo.git
hudson.plugins.git.GitException: Could not clone git@github.com: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 git@github.com: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

공개 키에 문제가 있습니까?

내가 사용 Jenkins에서 Tomcat 7/ Ubuntu 12.


이 오류 :

stderr : 권한이 거부되었습니다 (공개 키). 치명적 : 원격 끝이 예기치 않게 끊김

Jenkins가 잘못된 ssh 키로 github에 연결을 시도하고 있음을 나타냅니다.

다음을 수행해야합니다.

  1. jenkins가 실행되는 사용자를 결정하십시오. '빌드'또는 '젠킨스'
  2. 복제를 시도하는 jenkins 호스트에 로그인합니다. 즉, 노드가 실제로 빌드를 수행하는 경우 마스터에 로그인하지 마십시오.
  3. ssh를 github에 시도해보십시오. 실패하면 /.ssh에 적절한 키를 추가해야합니다.

확인하려면 다음과 같습니다.

  1. 올바른 공개 키 (id_rsa.pub)가 git-server에 업로드 된 경우.
  2. 올바른 개인 키 (id_rsa)가 /var/lib/jenkins/.ssh/에 복사 된 경우
  3. known_hosts 파일이 ~ / .ssh 폴더에 생성 된 경우. ssh -vvv git@github.com디버그 로그를 보십시오 . 일이 잘되면 github.com이 known_hosts에 추가됩니다.
  4. id_rsa의 권한이 700 ( chmod 700 id_rsa)으로 설정된 경우

모든 확인 후 ssh -vvv git@github.com.


제 경우에는 공개 키를 내 저장소 (Bitbucket에서)에 추가하고 ssh를 통해 한 번 git clone을 사용하여 "알려진 호스트"질문에 처음으로 예라고 대답해야했습니다.


또한 https가 아닌 ssh github URL을 사용하고 있는지 확인하십시오.


나는 언젠가 같은 문제가 있었다. ssh 키에 암호가 없는지 확인하고 일반 사용자 계정이 아닌지 확인하십시오 (예 : jenkins라는 사용자 계정보다 더 좋습니다).

다음 기사 확인 http://fourkitchens.com/blog/2011/09/20/trigger-jenkins-builds-pushing-github


내 프로젝트 (루트 폴더)를 삭제하고 다시 만들었습니다. 제 경우에는 가장 빠르고 간단한 방법이었습니다.

프로젝트를 삭제하기 전에 변경 사항을 모두 저장하는 것을 잊지 마십시오!


.ssh / id_rsa (개인 키)의 권한을 604로 변경했습니다. chmod 700 id_rsa


status code 128Jenkins에서 비슷한 오류가 발생 하면 :

status code 128:
stdout: 
stderr: fatal: Couldn't find remote ref refs/heads/jenkins

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2172)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1864)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:78)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:545)
    at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:358)
    at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:197)
    at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:173)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:113)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:299)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

내 .NET Framework가있는 새 브랜치 "jenkins"푸시하지 않았기 때문 Jenkinsfile입니다. 그래서 해결책은 내 변경 사항을

참고 URL : https://stackoverflow.com/questions/16721629/jenkins-returned-status-code-128-with-github

반응형