尝试使用 jenkins 克隆 git 存储库时出现错误 128
error 128 when trying to clone a git repository using jenkins
我可以在托管 Jenkins 应用程序的 Linux 服务器上克隆我的 git 存储库,但是当我尝试为此创建一个新的 Jenkins 作业时,出现错误128.
"Failed to connect to repository : Command "git ls-remote -h ssh://git@bitbucket.org/user/proj.git HEAD”返回状态码 128:
标准输出:
stderr:权限被拒绝(公钥)。
致命:无法从远程存储库读取。
请确保您拥有正确的访问权限
并且存储库存在。"
我做过的事情
在 Linux 服务器上安装 git。
安装 BitBucket 插件及其对 Jenkins 应用程序的依赖。
创建 SSH 密钥。
- 将密钥导入 BitBucket 和 Jenkins 文件夹。
- 为 Jenkins 用户设置 SSH 密钥的权限。
- 我在 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
我会尝试将 git 存储库的 URL 编写为 git@[...]
而不是 ssh://git@[...]
另一方面,您作为 test3
(ssh-rsa AAA[...]
) 的私钥引入的密钥似乎不是私钥。它看起来像 public 键。私钥是以-----BEGIN RSA PRIVATE KEY-----
开头,以-----END RSA PRIVATE KEY-----
结尾的块。在你的情况下,我认为它存储在名为 jenkins_bitbucket_access
的文件中(public 密钥存储在 jenkins_bitbucket_access.pub
中)
问题解决了!
当我在 Jenkins Web 上创建 SSH 凭证时,我使用了我的 public 密钥 而不是私钥的 ...现在一切正常:)
我可以在托管 Jenkins 应用程序的 Linux 服务器上克隆我的 git 存储库,但是当我尝试为此创建一个新的 Jenkins 作业时,出现错误128.
"Failed to connect to repository : Command "git ls-remote -h ssh://git@bitbucket.org/user/proj.git HEAD”返回状态码 128: 标准输出: stderr:权限被拒绝(公钥)。 致命:无法从远程存储库读取。
请确保您拥有正确的访问权限 并且存储库存在。"
我做过的事情
在 Linux 服务器上安装 git。
安装 BitBucket 插件及其对 Jenkins 应用程序的依赖。
创建 SSH 密钥。
- 将密钥导入 BitBucket 和 Jenkins 文件夹。
- 为 Jenkins 用户设置 SSH 密钥的权限。
- 我在 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
我会尝试将 git 存储库的 URL 编写为 git@[...]
而不是 ssh://git@[...]
另一方面,您作为 test3
(ssh-rsa AAA[...]
) 的私钥引入的密钥似乎不是私钥。它看起来像 public 键。私钥是以-----BEGIN RSA PRIVATE KEY-----
开头,以-----END RSA PRIVATE KEY-----
结尾的块。在你的情况下,我认为它存储在名为 jenkins_bitbucket_access
的文件中(public 密钥存储在 jenkins_bitbucket_access.pub
中)
问题解决了! 当我在 Jenkins Web 上创建 SSH 凭证时,我使用了我的 public 密钥 而不是私钥的 ...现在一切正常:)