jenkins - 如何为 Jenkins 设置 ssh key 以通过 ssh 发布

标签 jenkins ssh

Jenkins 需要证书才能使用 ssh 发布和 ssh 命令。可以在"manage jenkins" -> "Configure System"-> "publish over ssh"下配置.

问题是:如何创建证书?

我有两台 ubuntu 服务器,一台运行 Jenkins,一台运行应用程序。

我是设置一个 Jenkins 证书并将其部分放在部署盒上,还是将其设置在部署盒上,并将其部分放在 Jenkins 上?证书是否需要以名为 Jenkins 的用户的名义使用,或者可以用于任何用户?我们在开发框中没有 Jenkins 用户。

我知道有许多不兼容的 ssh 类型,Jenkins 需要哪些?

有没有人找到有关如何设置这一切的指南(如何生成 key ,将它们放在哪里等)?

最佳答案

您需要在 Jenkins 服务器上创建一个公钥/私钥作为 Jenkins 用户,然后将公钥复制到您要在目标服务器上进行部署的用户。

第一步,在构建服务器上以用户jenkins生成公钥和私钥

build1:~ jenkins$ whoami
jenkins
build1:~ jenkins$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): 
Created directory '/var/lib/jenkins/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa.
Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
[...] 
The key's randomart image is:
[...]
build1:~ jenkins$ ls -l .ssh
total 2
-rw-------  1 jenkins  jenkins  1679 Feb 28 11:55 id_rsa
-rw-r--r--  1 jenkins  jenkins   411 Feb 28 11:55 id_rsa.pub 
build1:~ jenkins$ cat .ssh/id_rsa.pub
ssh-rsa AAAlskdjfalskdfjaslkdjf... jenkins@myserver.com

步骤 2,将 pub 文件内容粘贴到目标服务器上。
target:~ bob$ cd .ssh
target:~ bob$ vi authorized_keys (paste in the stuff which was output above.)

确保您的 .ssh 目录的权限为 700,并且您的 authorized_keys 文件的权限为 644

第三步,配置Jenkins
  • 在 jenkins Web 控制面板中,导航到“管理 Jenkins”->“配置系统”->“通过 SSH 发布”
  • 输入文件的路径,例如“var/lib/jenkins/.ssh/id_rsa”,或粘贴与目标服务器上相同的内容。
  • 输入您的密码、服务器和用户详细信息,一切顺利!
  • 关于jenkins - 如何为 Jenkins 设置 ssh key 以通过 ssh 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331571/

    相关文章:

    maven - 如何在 Jenkins 中使用 maven 从多个套件中运行特定的 TestNG 套件

    python - 如何在 ssh 中创建 Django super 用户?

    mysql - C fork 在 5 个 child 后停止

    java - 使用 JSch 调用 WLST 命令

    git - 致命的 : remote server hung up unexpectedly

    jenkins - 在 Jenkins 中使用键值对

    maven - 如何在 Maven 中更改 serenity-bdd 日志设置

    python - 在 Python Alpine Docker 中加载共享库 libresolv.so.2 时出错

    java - 使用 Docker 桥接网络时无法在集成测试中获取 JDBC 连接

    ssh - 如何将旧机器的私钥导入新机器?