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

时间:2019-03-31 16:04:00

标签: 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:权限被拒绝(公钥)。 致命的:无法从远程存储库读取。

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

我所做的事情

  1. 在Linux服务器上安装git。

  2. 安装BitBucket插件,它依赖于Jenkins应用。

  3. 创建SSH密钥。

  4. 将密钥导入BitBucket和Jenkins文件夹。
  5. 设置SSH密钥对Jenkins用户的权限。
  6. 我在Jenkins应用程序上创建了SSH凭据。

终端上的作品

bash-4.2$ bash-4.2$ whoami jenkins bash-4.2$ ssh -T git@bitbucket.org authenticated via a deploy key. You can use git or hg to connect to Bitbucket. Shell access is disabled. This deploy key has read access to the following repositories: user/proj: test3 -- jenkins@git

git -c core.askpass=true ls-remote -h ssh://git@bitbucket.org/user/proj.git [ec2-user@ip-172-31-31-13 ~]$ git -c core.askpass=true ls-remote -h ssh://git@bitbucket.org/user/proj.git db710fbf01f08789cf5c15e66269013f8e1543d4 refs/heads/master

图像:

1-linux jenkins ver

2-ssh 2 git using default user

3-ssh 2 git using jenkins user

4-ssh rsa keys

5-jenkins auth keys

6-jenkins cred

7-jenkins web error

2 个答案:

答案 0 :(得分:0)

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

另一方面,您作为test3ssh-rsa AAA[...])的私钥引入的密钥似乎不是私钥。它看起来像公用密钥。私钥是一个以-----BEGIN RSA PRIVATE KEY-----开始并以-----END RSA PRIVATE KEY-----结尾的块。在您的情况下,我认为它存储在名为jenkins_bitbucket_access的文件中(公钥存储在jenkins_bitbucket_access.pub中)

答案 1 :(得分:0)

问题解决了! 在Jenkins Web上创建SSH凭据时,我使用的是私钥的代替,现在一切正常:)