【问题标题】:Changing the user running a Jenkins process更改运行 Jenkins 进程的用户
【发布时间】:2012-05-12 06:39:20
【问题描述】:

我想知道如何更改在我的 ubuntu 上启动 jenkins 服务器的用户。

http://[server]:8080/systemInfo 页面我可以找到一个环境变量: 用户詹金斯

我的动机是设置用户 'git' 以扭转 jenkins 无法克隆用户 'git' 在同一台计算机上托管的 git 项目:

hudson.plugins.git.GitException: 
Command "git clone --progress -o origin ssh://git@[server]:22/~/[repo].git /var/lib/jenkins/workspace/[project]" returned status code 128:
stdout: Cloning into /var/lib/jenkins/workspace/[project]...
stderr: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password)

...在为 jenkins 用户生成 ssh 密钥并验证 Jenkins 的 SSH 设置中的正确设置之后。

感谢您的帮助!

【问题讨论】:

  • 您谈到了在 Jenkins 中验证设置。但是您是否确认如果您将su 发送给jenkins 用户,那么您可以在没有密码的情况下使用ssh git@[server]
  • 从控制台运行与 jenkins 相同的 git 命令需要密码并且可以工作。在 jenkins 设置中定义此密码时,如上所示失败。
  • 如果需要密码,则密钥对设置不正确。在 jenkins 服务器上尝试chmod 700 ~jenkins/.ssh ; chmod 600 ~jenkins/id_rsa
  • 发布ssh -v git@[server]的输出可能对您也有帮助。
  • 最后,确保公钥是安装在 git 端的属性。听起来您已经这样做了,但仔细检查不会有什么坏处。

标签: git ubuntu ssh jenkins ssh-keys


【解决方案1】:

我不认为更改运行 Jenkins 的用户是解决方案。

您应该以 Jenkins 用户(或sudo su - jenkins)身份登录您的 Ubuntu 框,然后验证 ssh git@[your-git-server] 是否正常工作。很可能是缺少 SSH 密钥或与 SSH 密钥相关的文件或目录之一存在权限问题。

无论是那个还是git 命令行工具都不能识别在 Jenkins 中配置的 SSH 密钥。我知道当我的 jenkins 用户具有有效的 ~jenkins/.ssh/id_rsa~jenkins/.ssh/known_hosts 中的有效条目时,它们会起作用。

【讨论】:

  • 当调用 jenkins@[server]:~/.ssh$ ls 我得到了 id_rsa id_rsa.pub known_hosts
  • 另外,以下命令打印什么:openssl rsa -inform pem -in ~jenkins/.ssh/id_rsa_test -check -noout? (它是否要求输入密码?因为如果是这样,您可能需要考虑使用未加密的 RSA 密钥,除非您想手动启动 Jenkins 服务器,并且每次都激活 ssh-agent。)
  • 更正:openssl rsa -inform pem -in ~jenkins/.ssh/id_rsa -check -noout。 (必须以 root 或jenkins 用户身份执行)
  • 当 su as jenkins 输出为:RSA key ok
  • 您可能还需要检查~jenkins/.ssh 目录及其内容(以及路径上的任何目录)的权限。试试chmod 700 ~jenkins ~jenkins/.ssh 然后chmod 600 ~jenkins/.ssh/*
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-04
  • 2010-09-08
相关资源
最近更新 更多