无法在詹金斯中通过 ssh 连接到 bitbucket
Unable to connect to bitbucket via ssh in jenkins
我正在尝试通过 Jenkinsfile 创建一个标签,然后将其推送到通过 ssh 连接的远程存储库。
供参考:
在 Jenkins 中使用单一管道。
我在 bitbucket 中设置了 webhooks,它会在我推送代码时触发 Jenkins 中的构建。如果我通过 https 连接,则可以使用。
我已经生成了存储在本地的 ssh 密钥。当我通过 ide 处理代码 (pull/push) 时,这些键有效。
使用相同的 ssh 密钥(因此 bitbucket 中的 public 密钥没有变化),通过凭证在 Jenkins 中添加私钥。该商店名为 Jenkins,Domain 为 Global。请参阅有关如何设置我的凭据的屏幕截图。
但是当我尝试通过 ssh 设置存储库时,出现以下错误:
Failed to connect to repository : Command "git.exe ls-remote -h --
git@bitbucket.org:myname/jenproject.git HEAD" returned status code
128: stdout: stderr: Load key
"C:\Windows\TEMP\jenkins-gitclient-ssh145544752032398406.key":
invalid format git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository
exists.
看来它没有从正确的地方读取。我能得到一些帮助吗?我需要进一步的设置吗?一直在关注教程和 video guides,建议是设置我拥有的 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-----
部分。不要 trim 任何东西,包括破折号 (-
)
进行上述更改后,如果您收到错误 git@bitbucket.org: Permission denied (publickey)
,请确保您 运行ning Jenkins 与您能够成功 运行 来自命令行的命令 (ssh -vT git@bitbucket.org
)(在你的例子中是 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
我正在尝试通过 Jenkinsfile 创建一个标签,然后将其推送到通过 ssh 连接的远程存储库。
供参考:
在 Jenkins 中使用单一管道。
我在 bitbucket 中设置了 webhooks,它会在我推送代码时触发 Jenkins 中的构建。如果我通过 https 连接,则可以使用。
我已经生成了存储在本地的 ssh 密钥。当我通过 ide 处理代码 (pull/push) 时,这些键有效。
使用相同的 ssh 密钥(因此 bitbucket 中的 public 密钥没有变化),通过凭证在 Jenkins 中添加私钥。该商店名为 Jenkins,Domain 为 Global。请参阅有关如何设置我的凭据的屏幕截图。
但是当我尝试通过 ssh 设置存储库时,出现以下错误:
Failed to connect to repository : Command "git.exe ls-remote -h -- git@bitbucket.org:myname/jenproject.git HEAD" returned status code 128: stdout: stderr: Load key "C:\Windows\TEMP\jenkins-gitclient-ssh145544752032398406.key": invalid format git@bitbucket.org: Permission denied (publickey). fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
看来它没有从正确的地方读取。我能得到一些帮助吗?我需要进一步的设置吗?一直在关注教程和 video guides,建议是设置我拥有的 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-----
部分。不要 trim 任何东西,包括破折号 (-
)
进行上述更改后,如果您收到错误 git@bitbucket.org: Permission denied (publickey)
,请确保您 运行ning Jenkins 与您能够成功 运行 来自命令行的命令 (ssh -vT git@bitbucket.org
)(在你的例子中是 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