首页 文章

Jenkins失败:主机密钥验证失败

提问于
浏览
2

我在Macbook Pro(OS:Mountain Lion)上下载并安装了Jenkins for Mac OSX . 我现在想把它设置为从bitbucket下拉一个项目并进行自动构建 .

我创建了ssh密钥,将其添加到bitbucket并尝试设置构建作业 . 但是,我收到错误:

无法连接到存储库:命令“git ls-remote -h HEAD”返回状态码128:stdout:stderr:主机密钥验证失败 . 致命:远程端意外挂断

我试图从known_hosts中删除导致问题的域,但仍然出现此错误 .

请指教 .

1 回答

  • 2

    我想我在这篇文章中找到了一个可能的解决方案:http://colonelpanic.net/2011/06/jenkins-on-mac-os-x-git-w-ssh-public-key/

    Mac OS X上的Jenkins我刚刚使用Jenkins(以前的Hudson)在Mac OS X上完成了构建服务器的设置 . 我正在为之工作的公司(GradeCam)使用git和gitolite作为我们的源代码控制,因此我希望使用Jenkins使用git插件构建我们的工具没有问题 . 但是,我很快陷入困境:源控制服务器位于公共地址上,因此除了通过ssh我们的源代码不可用,而gitolite ssh访问使用私钥认证 . 好吧,我是一个体验unix系统管理员,所以这听起来不是一个大问题 - 毕竟,设置公钥认证是孩子们玩的,对吧?默认安装Mac OS X上的Jenkins默认安装(在撰写本文时)将Launch Agent plist安装到/Library/LaunchAgents/org.jenkins-ci.plist . 这个plist文件导致Jenkins作为用户“守护进程”加载,这听起来不错 - 除了“守护进程”用户的主目录是/ var / root,与用户root相同 . 这意味着那里的.ssh目录永远不会拥有使用私钥的权限 . 创建一个新的隐藏用户我的解决方案是为Jenkins创建一个新的“隐藏”用户 . 按照我在博客文章中找到的说明,我创建了一个用户名为“jenkins”的主目录“/ Users / Shared / Jenkins / Home”:sudo dscl . create / Users / jenkins
    sudo dscl . create / Users / jenkins PrimaryGroupID 1
    sudo dscl . create / Users / jenkins UniqueID 300
    sudo dscl . create / Users / jenkins UserShell / bin / bash
    sudo dscl . passwd / Users / jenkins $ PASSWORD
    sudo dscl . create / Users / jenkins主页/用户/共享/ Jenkins / Home /
    然后我停止了Jenkins:“sudo launchctl unload -w /Library/LaunchAgents/org.jenkins-ci.plist”并编辑了plist文件,将用户名设置为jenkins而不是daemon . “chown -R jenkins:/ Users / Shared / Jenkins / Home”
    设置权限他们需要的方式,然后“sudo launchctl load -w /Library/LaunchAgents/org.jenkins-ci.plist”应该让你运行起来!为了获得运行ssh的git,“sudo su - jenkins”获得一个控制台作为jenkins用户并设置ssh密钥等 . 确保你可以ssh到你想去的地方(甚至做一个测试git克隆),因为你需要保存密钥,这样当jenkins尝试进行克隆时它不会要求它们 . 那应该是你!希望它可以帮助某人 .

相关问题