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

时间:2012-10-30 12:08:22

标签: jenkins bitbucket ssh-keys

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

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

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

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

请告知。

1 个答案:

答案 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尝试时不要求它们   做克隆。

     

那应该是你!希望它可以帮到某人。