Jenkins需要证书才能使用ssh发布和ssh命令.它可以在下配置"manage jenkins" -> "Configure System"-> "publish over ssh".
问题是:如何创建证书?
我有两个ubuntu服务器,一个运行Jenkins,另一个运行应用程序.
我是否设置了Jenkins证书并将其中的一部分放在部署框上,或者在部署框上设置了证书,并将其中的一部分放在Jenkins上?证书是否需要名为Jenkins的用户名,或者是否适用于任何用户?我们在开发框中没有Jenkins用户.
我知道有许多不兼容的ssh类型,Jenkins需要它吗?
有没有人找到如何设置这一切的指南(如何生成密钥,在哪里放置它们等)?
Joh*_*tle 40
您需要在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
Run Code Online (Sandbox Code Playgroud)
步骤2,将pub文件内容粘贴到目标服务器上.
target:~ bob$ cd .ssh
target:~ bob$ vi authorized_keys (paste in the stuff which was output above.)
Run Code Online (Sandbox Code Playgroud)
确保您的.ssh目录中包含permissoins 700,并且您的authorized_keys文件具有权限644
第3步,配置Jenkins
您不需要在 Jenkins 服务器上创建 SSH 密钥,也不需要将 SSH 密钥存储在 Jenkins 服务器的文件系统上。在可能频繁创建和销毁 Jenkins 服务器实例的环境中,这一点信息至关重要。
在任何机器上(Windows、Linux、MacOS……都无所谓)生成一个 SSH 密钥对。使用这篇文章作为指导:
在目标服务器上,你需要将内容放在公共密钥(id_rsa.pub每上述文章)到.ssh/authorized_keys文件,詹金斯将使用部署在用户的主目录下。
参考:https : //plugins.jenkins.io/publish-over-ssh/
访问:Jenkins> Manage Jenkins> Configure System>Publish over SSH
id_rsa根据上述文章)复制并粘贴到“密钥”字段中访问:Jenkins> Credentials> System> Global credentials (unrestricted)>Add Credentials
id_rsa根据上述文章)]小智 5
对于 Windows:
$ ssh-keygen -t rsa -b 4096 -C your_email@example.com| 归档时间: |
|
| 查看次数: |
96952 次 |
| 最近记录: |