55

我刚刚通过 debian 安装步骤(使用 apt-get install)在我的 Ubuntu 服务器上安装了 Jenkins。我希望我的构建从 GitHub 上的私有 git 存储库中提取。有了这个,我需要使用 SSH 访问来访问我的存储库。

我的大部分搜索结果只是说以 Jenkins 用户身份登录并为我的 GitHub 帐户生成 SSH 密钥,但是通过 debian 包管理器安装,我没有 Jenkins 用户的密码。

那么如何为我的 Jenkins 服务器生成 SSH 密钥以供使用?

4

1 回答 1

94

我预计您会不时希望能够以 jenkins 身份登录以执行其他任务,因此我将解决更普遍的问题。最后包含对您问题的严格回答。

在不知情的情况下更改詹金斯的密码

从任何具有sudo权限的帐户,您可以将 jenkins 的密码重置为您选择的密码:

sudo passwd jenkins

为了使用 sudo,可能会首先要求您输入自己的密码。然后系统会提示您为 jenkins 设置新密码,最后确认该新密码。

如果您的具有 sudo 权限的用户称为 joe,则会话可能如下所示:

joe $ sudo passwd jenkins
[sudo] password for joe:     **you enter joe's passwd**
Enter new UNIX password:     ** you enter new jenkins passwd**
Retype new UNIX password:    ** you enter new jenkins passwd**
passwd: password updated successfully

替代方案:以 jenkins 身份登录,无需密码

或者,再次从合适的其他帐户使用 sudo,您可以以 jenkins 身份登录,而无需询问他的密码:

sudo su - jenkins

旁白:避免密码提示混淆

在发布之前sudo passwd jenkins,我们可能首先希望使用 sudo 单独进行身份验证,以避免对“现在我被要求输入谁的密码?”这个问题造成混淆。

sudo -v
sudo passwd jenkins

在通过 sudo 成功验证后,会有一个窗口(例如 15 分钟),不会提示我们再次验证。(请注意sudo -k,如果您想进行实验,可以使用 立即使此会话无效(终止)。)

承诺的严格回答

sudo -u jenkins ssh-keygen

然后用cat查看要传给github的公钥的内容(但路径只是一个例子):

  sudo cat ~jenkins/.ssh/id_rsa.pub

公钥文件的确切位置和名称取决于您在上面的 ssh-keygen 提示中输入的内容。我使用了 jenkins 主目录的快捷方式,~jenkins.

相关链接

于 2011-06-04T09:30:00.100 回答