我可以在托管Jenkins应用程序的Linux服务器上克隆我的git存储库,但是当我尝试创建一个新的Jenkins作业时,出现错误128。
“无法连接到存储库:命令“ git ls-remote -h ssh://git@bitbucket.org/user/proj.git HEAD”返回状态代码128: 标准输出: stderr:权限被拒绝(公钥)。 致命的:无法从远程存储库读取。
请确保您具有正确的访问权限 并且存储库存在。”
我所做的事情
在Linux服务器上安装git。
安装BitBucket插件,它依赖于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
图像:
2-ssh 2 git using default user
答案 0 :(得分:0)
在Jenkins中配置git存储库的URL时,我会尝试将其写为git@[...]
而不是ssh://git@[...]
另一方面,您作为test3
(ssh-rsa AAA[...]
)的私钥引入的密钥似乎不是私钥。它看起来像公用密钥。私钥是一个以-----BEGIN RSA PRIVATE KEY-----
开始并以-----END RSA PRIVATE KEY-----
结尾的块。在您的情况下,我认为它存储在名为jenkins_bitbucket_access
的文件中(公钥存储在jenkins_bitbucket_access.pub
中)
答案 1 :(得分:0)
问题解决了! 在Jenkins Web上创建SSH凭据时,我使用的是私钥的代替,现在一切正常:)