【问题标题】:Setting up jenkins on centos: problems with ssh keys and git在 centos 上设置 jenkins:ssh 密钥和 git 的问题
【发布时间】:2012-09-17 22:08:21
【问题描述】:

经历了很多问题,但似乎没有任何问题可以解决我的问题。或者更准确地说,我不确定我是否正确地完成了整件事。 所以这里是:

已安装 centos 6.3 操作系统。 然后我按照以下指南安装 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 运行命令?

【问题讨论】:

  • 我遇到了同样的问题 :(.

标签: git ssh jenkins centos ssh-keys


【解决方案1】:

我做了什么:sudo -u jenkins ssh-keygen。到目前为止有效

【讨论】:

    【解决方案2】:

    jenkins 是一个服务帐户,它没有设计外壳。人们普遍认为,服务帐户不应以交互方式登录。

    我最初没有回答这个问题,因为它与已移至服务器故障的问题重复。我应该回答而不是在评论中链接到答案。

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

    【讨论】:

      【解决方案3】:

      为了以“jenkins”用户身份登录,也许你可以试试这个:

      sudo -s -H -u jenkins
      

      并尝试调用:

      bash-4.1$ whoami
      jenkins
      

      希望对你有帮助。

      【讨论】:

        【解决方案4】:

        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】:

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

          su -s /bin/bash jenkins
          

          【讨论】:

            【解决方案6】:

            1 更改用户 jenkins 登录设置

            vi /etc/passwd

            将 /bin/false 更新为 /bin/bash

            2 苏 - 詹金斯

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

            3 ssh-keygen

            cat .ssh/id_rsa.pub

            将此密钥复制到 bitbucket

            4 ssh git@bitbucket.org

            这将在 .ssh/known_hosts 中设置 bitbucket ssh 密钥

            现在你应该可以访问了

            【讨论】:

              【解决方案7】:

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

              sudo su - jenkins
              

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

              然后运行

              ssh-keygen -t rsa
              

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

              【讨论】:

              • 问题是它没有切换到jenkins home。仍然留在我的用户家中。但是我仍然以root用户身份在jenkins home中生成了密钥,并且完全按照您所说的进行,但是错误仍然存​​在。
              • 嗯,我上面的 sudo 命令格式错误 - 刚刚更正了。
              • 密钥文件的所有者是 root 是否正确?可能 jenkins 用户没有登录 shell,这可能是原因。检查/etc/passwd 文件中是否有类似jenkins:x:999:1001::/var/lib/jenkins:/sbin/nologin 的条目,并暂时将/sbin/nologin 更改为/bin/bash 以切换到用户jenkins。
              【解决方案8】:

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

              为我工作

              【讨论】:

              • 确实存在。但它是空的。我做了什么我在那个目录中生成了密钥。获取公钥并附加到 git 服务器上的 authorized_keys 文件中。还是不行……
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-06-07
              • 2020-05-19
              • 1970-01-01
              • 1970-01-01
              • 2010-10-10
              • 2014-11-30
              相关资源
              最近更新 更多