Дженкинс вернул код статуса 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
. Таким образом, решение было просто подтолкнуть мои изменения