我刚刚通过 debian 安装步骤(使用 apt-get install)在我的 Ubuntu 服务器上安装了 Jenkins。我希望我的构建从 GitHub 上的私有 git 存储库中提取。有了这个,我需要使用 SSH 访问来访问我的存储库。
我的大部分搜索结果只是说以 Jenkins 用户身份登录并为我的 GitHub 帐户生成 SSH 密钥,但是通过 debian 包管理器安装,我没有 Jenkins 用户的密码。
那么如何为我的 Jenkins 服务器生成 SSH 密钥以供使用?
我刚刚通过 debian 安装步骤(使用 apt-get install)在我的 Ubuntu 服务器上安装了 Jenkins。我希望我的构建从 GitHub 上的私有 git 存储库中提取。有了这个,我需要使用 SSH 访问来访问我的存储库。
我的大部分搜索结果只是说以 Jenkins 用户身份登录并为我的 GitHub 帐户生成 SSH 密钥,但是通过 debian 包管理器安装,我没有 Jenkins 用户的密码。
那么如何为我的 Jenkins 服务器生成 SSH 密钥以供使用?
我预计您会不时希望能够以 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
.
相关链接