Дженкинс вернул код статуса 128 с github

С помощью команды GitHub у меня есть:

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

Мое соединение с GitHub в порядке (без проблем), но с Jenkins у меня есть эта ошибка:

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

Это проблема с открытым ключом?

Я использую Jenkins в Tomcat 7/Ubuntu 12.

Ответ 1

Эта ошибка:

stderr: Permission denied (publickey). фатальный: удаленный конец повесил трубку Неожиданно

указывает, что Jenkins пытается подключиться к github с неправильным ключом ssh.

Вы должны:

  • Определите пользователя, который работает jenkins, например. 'build' или 'jenkins'
  • Войдите на хост jenkins, который пытается сделать клон, то есть не заходите в мастер, если node действительно выполняет сборку.
  • Попробуйте ssh для github - если это не удается, тогда вам нужно добавить соответствующий ключ в /.ssh

Ответ 2

Для проверки выполните следующие действия:

  • если правильный открытый ключ (id_rsa.pub) загружен на сервер git.
  • если правый закрытый ключ (id_rsa) скопирован в /var/lib/jenkins/.ssh/
  • если файл known_hosts создается внутри папки ~/.ssh. Попробуйте ssh -vvv [email protected] просмотреть журналы отладки. Если все будет хорошо, github.com будет добавлен к known_hosts.
  • Если для разрешения id_rsa установлено значение 700 (chmod 700 id_rsa)

После всех проверок попробуйте ssh -vvv [email protected].

Ответ 3

В моем случае мне пришлось добавить открытый ключ к моему репо (в Bitbucket) И использовать git клон один раз через ssh, чтобы ответить да на вопрос "известный хост" в первый раз.

Ответ 4

Также убедитесь, что вы используете ssh github url, а не https

Ответ 5

У меня была одна и та же проблема. убедитесь, что ваш ключ ssh не имеет пароля и использует не общую учетную запись пользователя (например, лучше для учетной записи пользователя, называемой jenkins или так).

проверьте следующую статью http://fourkitchens.com/blog/2011/09/20/trigger-jenkins-builds-pushing-github

Ответ 6

Я удалил свой проект (корневую папку) и снова создал его. Это был самый быстрый и простой способ в моем случае.

Не забудьте сохранить все изменения, прежде чем удалять проект!

Ответ 7

Я изменил разрешение моего .ssh/id_rsa (закрытый ключ) на 604. chmod 700 id_rsa

Ответ 8

Когда я получил похожую ошибку status code 128 от Дженкинса:

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

Это было потому, что я не продвинул свою новую ветку "jenkins", в которой был мой Jenkinsfile. Таким образом, решение было просто подтолкнуть мои изменения