Jenkins用户在Apt-Get安装中的安装

55

我刚通过使用apt-get install命令,按照Debian的安装步骤,在我的Ubuntu服务器上安装了Jenkins。我希望我的构建能够从GitHub上的私有git存储库中拉取代码。为此,我需要使用SSH访问来连接到我的存储库。

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

那么我该如何生成一个供Jenkins服务器使用的SSH密钥呢?


我一直很好奇的另一件事是:当安装Jenkins时,会创建一个名为“Jenkins”的新用户。这个用户是否被分配了密码,还是留空的?如果留空,那么这是否存在安全风险? - Scott Coates
我认为该用户是没有密码且没有shell创建的,所以我不认为它会构成太大的安全风险,因为该用户实际上不能执行任何操作。 - Dave Long
@DaveLong,我对Jenkins非常陌生,第一次在Ubuntu服务器上设置Jenkins,你能帮我在我的Ubuntu服务器上安装Jenkins吗? - napendra
1个回答

94

我预见到有时您会想以jenkins的身份登录以执行其他任务,因此我将解决更一般的问题。最后附上对您问题的严格回答。

在不知道密码的情况下更改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

相关链接


10
非常感谢您提供的详细解释。我发现实际上您必须作为Jenkins用户登录,因此需要添加密码。在Jenkins能够自己克隆存储库之前,您将需要登录为jenkins用户,并至少执行ssh git@github.com以添加指纹。还要确保使用git config --global user.email 'jenkins@email.com'git config --global user.name 'jenkins'配置git客户端。 - Dave Long
非常感谢。这个答案非常有帮助。 - Rey Abolofia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接