当前位置: 首页 > 知识库问答 >
问题:

GIT项目的Jenkins签出失败,权限被拒绝致命:无法分叉

甘英光
2023-03-14

我有一个Freestyle Jenkins项目,它使用bit桶作为SCM,ssh作为协议和私钥(而不是用户/密码)。

当我在master上构建项目时,它在stackTrace下失败,而在Agent上运行良好。

注意,错误提到:

stderr:fatal:cannot exec'/var/lib/jenkins/workspace/foo_test@tmp/SSH13771776201355545595。sh':权限被拒绝致命:无法分叉

我检查了以下内容:

  • 以jenkins用户的身份从命令行运行该命令没有问题
  • 文件夹/var/lib/jenkins/workspace/foo_test@tmp可由詹金斯撰写
  • 我使用的是Git Client 2.7.4的最新版本

有什么问题吗?

Stacktrace:

    Started by user unknown or anonymous
    Building on master in workspace /var/lib/jenkins/workspace/foo_test
    [WS-CLEANUP] Deleting project workspace...
    [WS-CLEANUP] Deferred wipeout is used...
    Cloning the remote Git repository
    Cloning repository ssh://git@bitbucket.foo.com:7999/~xxx/foo_poc.git
    > git init /var/lib/jenkins/workspace/foo_test # timeout=10
    Fetching upstream changes from ssh://git@bitbucket.foo.com:7999/~xxx/foo_poc.git
    > git --version # timeout=10
    using GIT_SSH to set credentials
     > git fetch --tags --progress ssh://git@bitbucket.foo.com:7999/~xxx/foo_poc.git +refs/heads/*:refs/remotes/origin/*
    ERROR: Error cloning remote repo 'origin'
    hudson.plugins.git.GitException: Command "git fetch --tags --progress ssh://git@bitbucket.foo.com:7999/~xxx/foo_poc.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
    stdout:
    stderr: fatal: cannot exec '/var/lib/jenkins/workspace/foo_test@tmp/ssh1377177620135545595.sh': Permission denied
    fatal: unable to fork
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2016)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1735)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:420)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:629)
            at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1146)
            at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1186)
            at hudson.scm.SCM.checkout(SCM.java:504)
            at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
            at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
            at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
            at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
            at hudson.model.Run.execute(Run.java:1819)
            at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
            at hudson.model.ResourceController.execute(ResourceController.java:97)
            at hudson.model.Executor.run(Executor.java:429)
    ERROR: Error cloning remote repo 'origin'
    Finished: FAILURE

共有1个答案

元胡媚
2023-03-14

检查主服务器上的工作区目录是否未使用“noexec”选项装载。

  • 查看/etc/fstsab以查找这些设置

查看更多信息马克·维特的精彩回答

  • https://groups.google.com/forum/m/?utm_medium=email
 类似资料:
  • 问题内容: 我有一个Freestyle Jenkins项目,该项目使用bitbucket作为SCM,并使用ssh作为协议和私钥(而不是用户/密码)。 当我在master上构建项目时,它在以下stacktrace下失败,而在agent上运行良好。 注意错误提到: stderr:致命:无法执行’/var/lib/jenkins/workspace/foo_test@tmp/ssh13771776201

  • 我们有一个共同的LDAP帐户/用户。我们计划使用此用户为我们的团队配置 Jenkins。 < li >我使用我的登录名登录到机器/虚拟机并安装了Jenkins。 < li >然后,我仅从我的帐户生成ssh密钥,但我在生成ssh密钥时提供的电子邮件id是普通用户。 < li >然后我将公共ssh密钥添加到Github中(在GitHub中,我使用普通用户登录)。 < li >将私钥添加到Jenkins

  • 问题内容: 很抱歉来到这里问这个问题,但是我已经读完了所有互联网,试图找到解决方案,但是我仍然遇到这个问题… 我已经成功安装了Jenkins(让我在仍有希望的时候开始)可以在我们的持续集成流程中使用它。 我试图从这样一个简单的例子开始: 但是每次启动时,都会出现此错误: 问题在于用户jenkins(服务和主节点以Jenkins的身份运行)拥有此存储库上的所有权限。我试图授予组和其他人读取和执行的权

  • 我正在使用默认配置,同时添加在我的ubuntu 12.04计算机上安装了nginx的特定目录。 我只需要一个简单的静态nginx服务器来提供该目录之外的文件。但是,请检查我明白了 我已经在上完成了,我已经将它们设置为。我不知道还需要设置什么。

  • 更新 结果发现我调用open和close FileOutputStream的频率太高了,这会在某个时候抛出FileNotFoundException。听起来更像是线程问题。

  • 问题内容: 我正在使用Amazon EC2托管通过git部署到服务器的网站。之前,我在同一类型的EC2 Ubuntu Linux Server实例上使用了本教程,并且运行良好。但是,当我尝试推送到服务器时,收到以下错误跟踪: 教程:http://toroid.org/ams/git- website-howto 跟踪: 目前,我的存储库中只有一个文件,即。 错误跟踪显示拒绝创建文件的权限。请您告诉