在centos上设置jenkins:ssh键和git的问题

时间:2012-09-26 09:53:39

标签: git ssh jenkins centos ssh-keys

经历了很多问题,但似乎没有什么能解决我的问题。或者更确切地说,我不确定我是否正确地做了整件事。 所以这就是:

安装了centos 6.3 OS。 然后我按照以下指南安装jenkins:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

詹金斯工作正常。现在我正在尝试设置一个简单的构建作业,这需要克隆一个git存储库。 (我已经安装了git插件)

在存储库URL中,键入以下内容: git的@ gitserver:myrepo.git 当然我收到一个错误:stderr:主机密钥验证失败。

好吧,我需要生成ssh密钥,一切都会好的。 所以我做了以下几点:

su - jenkins

但遗憾的是它没有切换到jenkins用户。

cat / etc / passwd

显示以下内容:

jenkins:x:496:492:Jenkins Continuous Build Server:/var/lib/jenkins:/bin/false

似乎它没有通常的主目录。

问题是如何为jenkins生成密钥,或者如果上述步骤没有正确的方法,我该如何解决?

非常感谢!

更新: 我生成密钥(作为root用户)并将它们放在jenkins主页中并完全将公钥复制到git服务器。仍然没有帮助。

当我查看构建日志时,它说:

Started by user anonymous
Building in workspace /var/lib/jenkins/jobs/myrepo/workspace

这个用户匿名是由jenkins创建的另一个用户,还是运行命令的jenkins呢?

8 个答案:

答案 0 :(得分:6)

如果您能够安装Jenkins RPM,我假设您具有root访问权限。你是以root用户身份登录时使用jenkins用户吗?如果没有,您应该这样做或使用

sudo su - jenkins

如果您的登录用户具有sudo访问权限。

然后运行

ssh-keygen -t rsa

为jenkins用户生成RSA密钥对,您可以将公钥上传到您的git服务器。如果采用默认值,密钥将生成为/var/lib/jenkins/.ssh.id_ra.pub。

答案 1 :(得分:5)

1更改用户jenkins登录设置

vi / etc / passwd

更新/ bin / false到/ bin / bash

2 su - jenkins

jekins用户主页将是/ var / lib / jenkins

3 ssh-keygen

cat .ssh / id_rsa.pub

将此密钥复制到bitbucket

4 ssh git@bitbucket.org

这将在.ssh / known_hosts

中设置bitbucket ssh密钥

现在您应该可以访问

答案 2 :(得分:2)

我认为.ssh目录应该存在于/ var / lib / jenkins中。

为我工作

答案 3 :(得分:2)

我在更换为jenkins用户时遇到了问题。我需要在系统中正确创建用户,以便我可以登录到它。我运行此命令来帮助我在系统中创建jenkins用户:

su -s /bin/bash jenkins

答案 4 :(得分:2)

1)首先通过编辑/ etc / passwd文件使jenkins成为真实用户  改变

  

/ bin / false到/ bin / bash

2)登录jenkins用户,现在Jenkins主目录将是/ var / lib / jenkins

su - jenkins

3)再次生成ssh密钥(密钥将在/var/lib/jenkins/.ssh中创建)

ssh-keygen -t rsa

4)复制id_rsa.pub密钥并粘贴到你的git的authorized_keys文件中

5)如果它不起作用,可能你必须检查.ssh目录和内容的权限

chmod 700 ~/.ssh && chmod 600 ~/.ssh/*

答案 5 :(得分:2)

jenkins是一个服务帐户,它没有设计的shell。通常认为服务帐户不能以交互方式登录。

我最初没有回答这个问题,因为它是一个已经转移到服务器故障的问题的副本。我应该在评论中回答而不是与答案相关联。

如果由于某种原因你想以jenkins身份登录,你可以这样做: sudo su -s / bin / bash jenkins

答案 6 :(得分:1)

以" jenkins"登录用户,也许你可以试试这个:

sudo -s -H -u jenkins

尝试调用:

bash-4.1$ whoami
jenkins

希望它有所帮助。

答案 7 :(得分:0)

我做了什么:sudo -u jenkins ssh-keygen。它到目前为止工作