使用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
为什么这个问题与publickey有关 我在TomCat7 / ubuntu 12下使用jenkins 请帮忙
答案 0 :(得分:44)
此错误:
stderr:权限被拒绝(publickey)。致命的:远程端挂了 出乎意料
表示Jenkins正在尝试使用错误的ssh密钥连接到github。
你应该:
答案 1 :(得分:11)
要检查以下内容:
ssh -vvv git@github.com
查看调试日志。如果事情进展顺利,github.com将被添加到known_hosts。chmod 700 id_rsa
)完成所有检查后,请尝试ssh -vvv git@github.com
。
答案 2 :(得分:4)
在我的情况下,我必须将公钥添加到我的仓库(在Bitbucket)并通过ssh使用git clone一次,以便第一次对“已知主机”问题回答“是”。
答案 3 :(得分:2)
查看以下文章http://fourkitchens.com/blog/2011/09/20/trigger-jenkins-builds-pushing-github
答案 4 :(得分:2)
还要确保使用ssh github网址而不是https
答案 5 :(得分:0)
我删除了我的项目(根文件夹)并再次创建它。在我的案例中,这是最快最简单的方式。
在删除项目之前,不要忘记保存所有更改!
答案 6 :(得分:0)
我将.ssh / id_rsa(私钥)的权限更改为604。 chmod 700 id_rsa
答案 7 :(得分:0)
当我从詹金斯那里收到类似的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
。所以解决方案是只推送我的更改
答案 8 :(得分:-1)
我首先有另一个凭据,然后当我删除它并创建一个新凭据时,我遇到了同样的错误。我必须访问每个项目,并选择新的凭据。