我有一个令人沮丧的时间来设置这个。目前我的Bitbucket帐户有a problem connecting over HTTPS,因此我尝试使用SSH连接到我的仓库,但遇到了问题。
这是我第一次使用Jenkins,所以请耐心等待。我使用 homebrew 安装了Jenkins,这非常简单。
~/.ssh
文件夹中获取了公钥git@bitbucket.org:myrepo.git
URL添加了新的git存储库。我的努力得到了回报:
无法连接到存储库:命令“git ls-remote -h git@bitbucket.org:myrepo.git HEAD“返回状态 代码128:stdout:stderr:权限被拒绝(publickey)。致命: 无法从远程存储库中读取。
请确保您拥有正确的访问权限并且存储库已存在。
我听说过Jenkins在你的机器上创建了一个新用户,而SSH密钥可能无法正常工作的原因是因为jenkins用户无法访问它。我没有找到任何证据表明它创建了一个用户,甚至听说过it does not create a user,也许这是旧行为。
我尝试过切换到这个Jenkins用户as suggested here,但无济于事。
任何帮助将不胜感激。
编辑:我听到的另一件事(某处)是,如果您的SSH密钥是在没有密码短语的情况下创建的,它可能会更好。在这种情况下听起来不那么安全,所以我不确定我是否应该尝试。
答案 0 :(得分:1)
好的,我刚刚知道发生了什么。
即使我将我的SSH密钥添加到Jenkins并且可以通过我项目的源代码管理部分中的凭据下拉列表访问它,我的机器上的ssh-agent
(Jenkins使用的)也不知道我的密钥我需要添加它们。
解决方案:
在安装Jenkins的机器上:
- 打开终端
- 输入:
ssh-add -l
- 如果您没有看到列出的密钥(我说“代理没有身份。”)那么您需要添加它们。输入:
ssh-add <path-to-key>
(默认路径通常是这样的~/.ssh/id_rsa
)- 如果您有密钥的密码,则需要在此处输入密码。
- 现在回到你的Jenkins项目,添加你的repo URL,然后选择你的凭据,它应该可以工作
醇>
希望能帮助别人避免像我一样浪费时间。