1

在我的 Jenkins 工作中指定存储库路径“ssh://Administrator@WS-GIT/GitCentralRepository/Development”时,我收到此错误。

"Failed to connect to repository : Command "ls-remote -h ssh://Administrator@WS-GIT/GitCentralRepository/Development HEAD" returned status code 128:
stdout:
stderr: FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey,keyboard-interactive)
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists."

在指定相同的存储库路径后,我可以从 GITExtensions 客户端克隆该项目。我在 Windows 7 上将 Jenkins 作为 Windows 服务运行。请帮助

4

1 回答 1

0

我到达此页面时基本上遇到了同样的问题,我可以从 jenkins 主机上与用户一起成功运行“git ls-remote”,但我无法从 Jenkins 凭据插件中使用它。

我错误配置的是一件愚蠢的事情,凭证插件需要私钥而不是公钥

我的 Jenkins 和 gerrit 服务器在 linux 下,但对于这个问题应该没有区别。

以防万一有人遇到类似问题的页面。我的场景是我想配置一个非交互式用户(无密码)将特定的 repo 从 gerrit 克隆到 Jenkins。

如果这是您的情况,请确保

1)在jenkins中创建一个非交互组并将你的非交互用户添加到其中,即用户jenkins,首先生成ssh密钥(提供空通行证)

ssh-keygen-t rsa

然后在 gerrit 中创建用户并将其添加到非交互式用户组

猫~jenkis/.ssh/id_rsa.pub | ssh -p 29418 your.gerrit.instance.com gerrit create-account --group "'非交互式用户'" --ssh-key - jenkins

2)确保您尝试克隆的项目已授予非交互式组的读取访问权限(您可以在 gerrit webUI 中执行此操作)

注意:如果您碰巧直接在 gerrit 数据库中更改了 ssh 密钥(就像我尝试解决此问题一样),您需要刷新 gerrit ssh 缓存

ssh -p 29418 review.example.com gerrit flush-caches --cache sshkeys

3) 确保在 Jenkins 凭证插件中提供步骤 2 中生成的私钥 (.ssh/id_rsa) 的内容

4) 在您的 Jenkins 工作中使用如下网址

ssh://jenkins@your.gerrit.instance.com:29418/yourRepoName

希望这对其他人有帮助

费德

检查这篇文章它也可能有帮助http://toastedbits.com/post/26#integration

于 2014-01-22T06:15:02.083 回答