无法通过Jenkins中的SSH连接到Bitbucket

时间:2020-04-19 11:27:51

标签: git jenkins ssh bitbucket

我正在尝试通过Jenkinsfile创建标签,然后将其推送到通过ssh连接的远程存储库。

供参考:

在詹金斯中使用单个管道。

我在bitbucket中设置了webhooks,每当我推送代码时都会触发Jenkins的构建。如果我通过https连接可以工作。

我已经生成了本地存储的ssh密钥。当我通过自己的想法处理代码(推/推)时,这些键有效。

使用相同的ssh密钥(因此不会更改bitbucket中的公钥),并通过凭据在Jenkins中添加了私钥。该商店称为Jenkins,Domain是Global。请参阅有关如何设置我的证书的屏幕截图。

enter image description here

但是当我尝试通过ssh设置存储库时,出现以下错误:

无法连接到存储库:命令“ git.exe ls-remote -h- git@bitbucket.org:myname / jenproject.git HEAD“返回状态码 128:标准输出:标准错误:加载密钥 “ C:\ Windows \ TEMP \ jenkins-gitclient-ssh145544752032398406.key”: 无效格式git@bitbucket.org:权限被拒绝(公钥)。 致命:无法从远程存储库读取。

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

enter image description here

似乎没有从正确的地方读取。我可以在这方面得到一些帮助。我是否需要其他设置?遵循了教程和视频指南,建议是设置我拥有的ssh密钥。请指教。谢谢。

1 个答案:

答案 0 :(得分:1)

如果您在Jenkins的“凭据”部分中错误地粘贴了私钥,则可能会在Jenkins中出现

invalid format错误。确保要粘贴私钥文件的完整内容,如下所示:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFQAAAAdz
nYr+I/KWGeCBrl+y5kGNkOy68aUC1BMRGecfQ773DQxLVrdvDTrVD3K3fDMKvD3a
70e67IyiWZP7Ti83NvsZNxZ2KmBMc/qh0YsQeyvWvOxOM9IRqWAF63ZNF/ShJv9G
...
...
...
m/VXqS6KmjemlbYbcrGaEkH5eXhT+gW7eQr7oEouHwAAAIEArUSTb8Z6+D3DbMFF
mf9YRulDVHwU5aCFQMCGkI1Kx7h2FQcOgqhmJAlthMOdzlP5wVC6pbBug6sT9f6H
xO8RbjNHwXMDl3QKsHCNcIy0Uj0AAAAHc2FwaWVudAECAwQF
-----END OPENSSH PRIVATE KEY-----

从上面的示例中可以看到,它应该同时包含-----BEGIN OPENSSH PRIVATE KEY----------END OPENSSH PRIVATE KEY-----部分。不要修剪包括破折号(-

进行上述更改后,如果遇到错误git@bitbucket.org: Permission denied (publickey),请确保您使用能够成功运行命令的用户(ssh -vT git@bitbucket.org来运行Jenkins。 )(在您的情况下为Git Bash)。为此,请按照here

中的说明进行操作

这里也进行了总结:

1. Run > 'services.msc' (Enter)
2. Select Jenkins service. Right-click and select Properties
3. Click on 'Log On' tab
4. Select user 'X' and provide credentials
5. Restart Jenkins