我正在尝试通过Jenkinsfile创建标签,然后将其推送到通过ssh连接的远程存储库。
供参考:
在詹金斯中使用单个管道。
我在bitbucket中设置了webhooks,每当我推送代码时都会触发Jenkins的构建。如果我通过https连接可以工作。
我已经生成了本地存储的ssh密钥。当我通过自己的想法处理代码(推/推)时,这些键有效。
使用相同的ssh密钥(因此不会更改bitbucket中的公钥),并通过凭据在Jenkins中添加了私钥。该商店称为Jenkins,Domain是Global。请参阅有关如何设置我的证书的屏幕截图。
但是当我尝试通过ssh设置存储库时,出现以下错误:
无法连接到存储库:命令“ git.exe ls-remote -h- git@bitbucket.org:myname / jenproject.git HEAD“返回状态码 128:标准输出:标准错误:加载密钥 “ C:\ Windows \ TEMP \ jenkins-gitclient-ssh145544752032398406.key”: 无效格式git@bitbucket.org:权限被拒绝(公钥)。 致命:无法从远程存储库读取。
请确保您具有正确的访问权限和存储库 存在。
似乎没有从正确的地方读取。我可以在这方面得到一些帮助。我是否需要其他设置?遵循了教程和视频指南,建议是设置我拥有的ssh密钥。请指教。谢谢。
答案 0 :(得分:1)
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