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

问题是:如何创建证书?

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

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

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

有没有人找到有关如何全部设置的指南(如何生成密钥,将密钥放置在何处等)?

最佳答案

您将需要在Jenkins服务器上以Jenkins用户身份创建公用/专用密钥,然后将公用密钥复制到要在目标服务器上进行部署的用户。

步骤1,以用户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,将发布文件的内容粘贴到目标服务器上。
target:~ bob$ cd .ssh
target:~ bob$ vi authorized_keys (paste in the stuff which was output above.)

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

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

    10-11 22:10
    查看更多