我在Macbook Pro(操作系统:Mountain Lion)上下载并安装了Jenkins for Mac OSX。我现在想把它设置为从bitbucket下拉项目并进行自动构建。
我创建了ssh密钥,将其添加到bitbucket并尝试设置构建作业。但是,我收到错误:
无法连接到存储库:命令“git ls-remote -h HEAD”返回状态码128: 标准输出: stderr:主机密钥验证失败。 致命:远程端意外挂断
我尝试从known_hosts中删除导致问题的域,但仍然出现此错误。
请告知。
答案 0 :(得分:2)
我想我在这篇文章中找到了一个可能的解决方案:http://colonelpanic.net/2011/06/jenkins-on-mac-os-x-git-w-ssh-public-key/
Mac OS X上的Jenkins我刚刚在Mac上设置了构建服务器 OS X使用Jenkins(以前的Hudson)。我正在为之工作的公司 (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,与用户相同 根。这意味着那里的.ssh dir永远不会有权利 要使用的私钥的权限。
创建新的隐藏用户
我的解决方案是为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 home /Users/Shared/Jenkins/Home/
然后我停止了Jenkins:
“sudo launchctl unload -w /Library/LaunchAgents/org.jenkins-ci.plist”
并编辑了plist文件 将用户名设置为jenkins而不是守护进程。“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 clone),因为你 需要保存密钥,以便在jenkins尝试时不要求它们 做克隆。
那应该是你!希望它可以帮到某人。