git - 无法通过 jenkins 中的 ssh 连接到 bitbucket
问题描述
我正在尝试通过 Jenkinsfile 创建一个标签,然后将其推送到通过 ssh 连接的远程存储库。
以供参考:
在 Jenkins 中使用单一管道。
我在 bitbucket 中设置了 webhook,每当我推送代码时都会触发 Jenkins 中的构建。如果我通过 https 连接,则可以使用。
我已经生成了存储在本地的 ssh 密钥。当我通过我的 ide 处理代码(拉/推)时,这些键有效。
使用相同的 ssh 密钥(因此 bitbucket 中的公钥没有变化),通过 Credentials 在 Jenkins 中添加了私钥。商店叫 Jenkins,Domain 是 Global。请参阅有关如何设置我的凭据的屏幕截图。
但是当我尝试通过 ssh 设置存储库时,出现以下错误:
无法连接到存储库:命令“git.exe ls-remote -h -- git@bitbucket.org:myname/jenproject.git HEAD”返回状态码 128:stdout:stderr:加载键“C:\Windows\TEMP\ jenkins-gitclient-ssh145544752032398406.key”:无效格式 git@bitbucket.org:权限被拒绝(公钥)。致命:无法从远程存储库中读取。
请确保您具有正确的访问权限并且存储库存在。
看起来它没有从正确的位置读取。我能得到一些帮助吗?我需要进一步设置吗?一直在关注教程和视频指南,建议设置我拥有的 ssh 密钥。请指教。谢谢。
解决方案
invalid format
如果您在 Jenkins 的凭据部分错误地粘贴了您的私钥,可能会出现 Jenkins 错误。确保您粘贴了私钥文件的完整内容,如下所示:
-----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
在您的情况下)。为此,请按照此处说明的说明进行操作
在这里也总结一下:
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
推荐阅读
- r - varnames 上的重复函数
- python - 为什么汤里没有表格数据标签?
- linux - 删除大量用户的 Bash 脚本未运行
- octobercms - Octobercms 在后端显示画廊的标题和图像
- c++ - 现代编译器内联 Cpp 文件和 PImpl Idiom Overhead
- angular - “MyModel”类型缺少“Observable”类型的以下属性
':Angular 中的 _isScalar、source、operator、lift 等 6 个 - php - 自定义格式的最低价格,包括特定 WooCommerce 可变产品的税金
- javascript - 用于在 python 中抓取 javascript 的 Selenium:使用 page_source
- excel - Excel - AND 公式不能作为例外工作(需要获取公式返回的值)
- r - R闪亮部署 - 替换rowr cbind.fill