我有一个git repo,其中有一个子模块。两者都属于BitBucket上的团队。我的jenkins机器是带有git插件的AWS Windows服务器。我正在使用SSH密钥进行身份验证。我有三个詹金斯工作。一个克隆主仓库。这是成功的。一个将自己克隆第二个存储库(该存储库将用作子模块)。这也是成功的。在我的第三个构建工作中,我告诉jenkins递归更新子模块。这将失败并显示公钥错误。如果我可以自己克隆存储库怎么办?
控制台输出如下:
Started by user anonymous Building on master in workspace C:\Program Files (x86)\Jenkins\jobs\MainRepo\workspace Wiping out workspace first. Cloning the remote Git repository Cloning repository git@bitbucket.org:team/mainrepo.git > git.exe init C:\Program Files (x86)\Jenkins\jobs\mainrepo\workspace # timeout=10 Fetching upstream changes from git@bitbucket.org:team/mainrepo.git > git.exe --version # timeout=10 using GIT_SSH to set credentials > git.exe -c core.askpass=true fetch --tags --progress git@bitbucket.org:team/mainrepo.git +refs/heads/*:refs/remotes/origin/* > git.exe config remote.origin.url git@bitbucket.org:team/mainrepo.git # timeout=10 > git.exe config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 > git.exe config remote.origin.url git@bitbucket.org:team/mainrepo.git # timeout=10 Fetching upstream changes from git@bitbucket.org:team/mainrepo.git using GIT_SSH to set credentials > git.exe -c core.askpass=true fetch --tags --progress git@bitbucket.org:team/mainrepo.git +refs/heads/*:refs/remotes/origin/* > git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 Checking out Revision 6b3f6535c45e79ee88f4918d464edead48d83369 (refs/remotes/origin/master) > git.exe config core.sparsecheckout # timeout=10 > git.exe checkout -f 6b3f6535c45e79ee88f4918d464edead48d83369 > git.exe rev-list 6b3f6535c45e79ee88f4918d464edead48d83369 # timeout=10 > git.exe remote # timeout=10 > git.exe submodule init # timeout=10 > git.exe submodule sync # timeout=10 > git.exe config --get remote.origin.url # timeout=10 > git.exe submodule update --init --recursive FATAL: Command "git.exe submodule update --init --recursive" returned status code 128: stdout: stderr: Cloning into 'my-submodule'... Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. fatal: clone of 'git@bitbucket.org:team/my-submodule.git' into submodule path 'my-submodule' failed hudson.plugins.git.GitException: Command "git.exe submodule update --init --recursive" returned status code 128: stdout: stderr: Cloning into 'my-submodule'... Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. fatal: clone of 'git@bitbucket.org:team/my-submodule.git' into submodule path 'my-submodule' failed at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1693) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:62) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$7.execute(CliGitAPIImpl.java:953) at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:90) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1098) at hudson.scm.SCM.checkout(SCM.java:485) at hudson.model.AbstractProject.checkout(AbstractProject.java:1276) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) at hudson.model.Run.execute(Run.java:1738) at hudson.matrix.MatrixBuild.run(MatrixBuild.java:301) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:410) Finished: FAILURE
这 是 jenkins中的一个已知错误:https ://issues.jenkins- ci.org/browse/JENKINS-20941,但现已修复,请更新您的Git插件以解决该问题。
如果无法更新,作为解决方法,您可以将密钥放入jenkins-users .ssh文件夹中。