Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用jenkins克隆git存储库时出现错误128_Git_Jenkins_Bitbucket_Permission Denied_Public Key - Fatal编程技术网

尝试使用jenkins克隆git存储库时出现错误128

尝试使用jenkins克隆git存储库时出现错误128,git,jenkins,bitbucket,permission-denied,public-key,Git,Jenkins,Bitbucket,Permission Denied,Public Key,我可以在托管Jenkins应用程序的Linux服务器上克隆我的git存储库,但是当我试图创建一个新的Jenkins作业来执行此操作时,我得到了错误128 无法连接到存储库:命令“git ls remote-h”ssh://git@bitbucket.org/user/proj.git HEAD“返回状态代码128: 标准: stderr:权限被拒绝(公钥)。 致命:无法从远程存储库读取 请确保您拥有正确的访问权限 并且存储库存在。” 我做的事 在Linux服务器上安装git 在Jenkins应用

我可以在托管Jenkins应用程序的Linux服务器上克隆我的git存储库,但是当我试图创建一个新的Jenkins作业来执行此操作时,我得到了错误128

无法连接到存储库:命令“git ls remote-h”ssh://git@bitbucket.org/user/proj.git HEAD“返回状态代码128: 标准: stderr:权限被拒绝(公钥)。 致命:无法从远程存储库读取

请确保您拥有正确的访问权限 并且存储库存在。”

我做的事

  • 在Linux服务器上安装git

  • 在Jenkins应用程序上安装BitBucket插件及其依赖项

  • 创建一个SSH密钥

  • 将密钥导入BitBucket和Jenkins文件夹
  • 设置Jenkins用户对SSH密钥的权限
  • 我在Jenkins应用程序上创建了SSH凭据
  • 在终端上工作

    
    bash-4.2$
    bash-4.2$whoami
    詹金斯
    bash-4.2$ssh-Tgit@bitbucket.org
    通过部署密钥进行身份验证。
    您可以使用git或hg连接到Bitbucket。Shell访问被禁用。
    此部署密钥具有对以下存储库的读取权限:
    用户/项目:测试3--jenkins@git
    
    .

    
    git-c core.askpass=true ls remote-hssh://git@bitbucket.org/user/proj.git
    [ec2-user@ip-172-31-31-13~]$git-c core.askpass=true ls-remote-hssh://git@bitbucket.org/user/proj.git
    DB710FBF01F008789CF5C15E6626013F8E1543D4参考/头/主
    

    图像:


    在Jenkins中配置git存储库时,我会尝试将它的URL写为
    git@[…]
    ,而不是
    ssh://git@[…]

    另一方面,您作为
    test3
    ssh-rsa-AAA[…]
    )的私钥引入的密钥似乎不是私钥。它看起来像是公钥。私钥是一个以
    ----BEGIN RSA private key-----
    开头,以
    ----END RSA private key-----
    结尾的块。在您的情况下,我认为它存储在名为
    jenkins\u bitbucket\u access
    的文件中(公钥存储在
    jenkins\u bitbucket\u access.pub
    中)

    问题解决了!
    当我在Jenkins Web上创建SSH凭据时,我使用了公钥而不是私钥。。。现在一切正常:)

    如果没有ssh,它根本无法工作,无法连接到存储库:命令“git ls remote-hgit@bitbucket.org/user/proj.git HEAD“返回的状态代码128:stdout:stderr:fatal:”git@bitbucket.org/user/proj.git'似乎不是git存储库致命:无法从远程存储库读取。请确保您拥有正确的访问权限,并且存储库已存在。我按照您的建议更新了jenkins的授权密钥文件,并重新启动了jenkins服务,但它仍然无法工作。。。。仍然是相同的错误我没有建议更改
    authorized_key
    文件,而是更改Jenkins上的
    test3
    凭据配置。顺便说一下,当您在命令行中执行
    ssh
    而不指定特定的私钥时,默认情况下使用的是
    id\u rsa
    。既然这样做有效,我会在不指定任何凭据的情况下尝试Jenkins,因此也应该使用默认密钥对,不是吗?如果没有
    ssh://
    ,URL格式会有一些变化-它需要
    git@bitbucket.org:owner/repo.git
    ,用冒号代替第一个斜杠。