当前位置: 首页 > 面试题库 >

如何设置ssh密钥以供jenkins通过ssh发布

秦天宇
2023-03-14
问题内容

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

问题是:如何创建证书?

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

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

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

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


问题答案:

您将需要在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

  1. 在jenkins Web控制面板中,导航到“管理Jenkins”->“配置系统”->“通过SSH发布”
  2. 输入文件路径,例如“ var / lib / jenkins / .ssh / id_rsa”,或粘贴与目标服务器上相同的内容。
  3. 输入您的密码,服务器和用户详细信息,一切顺利!


 类似资料:
  • 问题内容: 我正在尝试使用Apache2设置Debian服务器作为运行Jenkins的Tomcat 7的前端-这正在工作- 但我希望Jenkins监视托管在bitbucket上的私有Mercurial存储库,并且我想使用SSH。(我曾尝试使用简单的https,但仍然没有喜悦- SO上有一个问题答案,建议使用ssh) 通过将Jenkins .WAR文件拖放到/ webapps中,我已经使用Tomca

  • 主要内容:创建SSH密钥SSH代表用于管理网络,操作系统和配置的Secure Shell或Secure Socket Shell,并且每次都不需要使用用户名和密码即可验证GitLab服务器。 您可以设置SSH密钥以提供计算机与GitLab之间的可靠连接。 在生成之前,您需要在系统中安装Git。 创建SSH密钥 步骤(1): 要创建SSH密钥,请打开命令提示符并输入命令,如下所示: 它会提示’输入保存密钥的文件():’,只

  • 我已经在我的Windows 7机器上创建了一个公钥和私钥到我的Git服务器,当我在Windows中使用Tortoise Git时,我可以成功使用它。 我现在只想在命令行上使用它,但无法让它工作,因为msysGit没有获取我的ssh密钥。 有人能帮我介绍一下如何帮助mysysGit捡起我存储在。。。 我在网上看到一条帖子,建议把它放在 可能有帮助,但没有。 谢谢

  • 问题内容: 以jenkins用户身份登录时,我在〜/ .ssh / id_rsa.pub中有一个ssh密钥。 我已将其正确导入到bitbucket中,并且已经接受了密钥。 当我尝试进行git clone(正确的URL)时,我仍然得到…。 有人知道发生这种情况的原因吗?根据我读过的文档,〜/ .ssh是jenkins用户的正确目录,此文件存在。 编辑:我的jenkins用户在〜/ .ssh中没有kn

  • 问题内容: 我正在使用Paramiko通过ssh连接到服务器。 基本身份验证效果很好,但我不明白如何使用公钥进行连接。 当我连接腻子时,服务器告诉我这一点: 我用这个ppk文件连接到它: 使用基本身份验证,我从日志中得到的错误是: 我尝试包含该ppk文件并将其设置为auth_public_key,但是没有用。 你能帮助我吗? 问题答案: 好的@Adam和@Kimvais是正确的,paramiko无

  • 问题内容: 我正在尝试使用GitHub托管存储库(使用Jenkins Git插件)启动Jenkins并使其运行。该存储库具有多个git子模块,因此我不确定我是否想尝试和管理多个部署密钥。 我的个人GitHub用户帐户是我希望与Jenkins进行的每个项目的合作者,因此我在其中生成了一个SSH密钥并将其添加到我的个人GitHub帐户中。 但是,当我尝试将存储库URL添加到我的Jenkins项目配置中