我在 Centos VM 上安装了 Jenkins,因为我正在考虑更换 Bamboo,我按照以下安装步骤完成了所有安装并运行指示一切顺利,然后我想启动一个从属服务器,我创建了第二个虚拟机,在其上创建了一个用户,为该用户创建了一个 SSH 密钥。然后我在 Jenkins 中创建了一个从属节点,但是当我在 Jenkins 中为从属机器创建帐户并提供 SSH 私钥时,我得到了一个错误。这是正确的,因为我没有将主 SSH 公钥放在从属服务器的 ~/.ssh/authorized_keys 中。
Centos Yum 安装似乎没有为运行 Jenkins 的用户创建 ssh 密钥,我使用 Google 搜索了一下,从我读到的内容来看,我需要这个密钥才能完成我想要做的事情。我确实尝试在机器上使用 SU,但没有成功。我想知道我需要怎么做,因为我宁愿使用 SSH 密钥。
说了这么多,我已经通过使用带有密码的 SSH 选项让一个从属服务器运行,虽然它可以工作,但这不是我想要的方式。
任何帮助都将非常有帮助!
答案1
我刚刚遇到了同样的问题。我所做的是:
- 在 master 上更改为 root 用户:
su root
- 执行:
passwd jenkins
- 指定 jenkins 用户的密码
- 更改为 jenkins 用户(并提供步骤 3 中的密码):
su jenkins
- 跑步
ssh-keygen
这为我解决了问题。我无法执行此操作sudo passwd jenkins
,我必须更改为 root 用户。您可能还想将远程服务器添加到 know_hosts 文件中。
答案2
实现相同目的的更合适方法是运行:
# sudo -u jenkins ssh-keygen
这将在这里为您生成密钥:
/var/lib/jenkins/.ssh/id_rsa.pub