web-dev-qa-db-ja.com

ジェンキンスがssh経由で公開するためのsshキーを設定する方法

Jenkinsでは、sshコマンドとsshコマンドを使用するために証明書が必要です。 "manage jenkins" -> "Configure System"-> "publish over ssh"で設定できます。

問題は、どのように証明書を作成するのですか?

私は2つのubuntuサーバーを持っています。1つはJenkinsを実行し、もう1つはアプリを実行します。

Jenkins証明書をセットアップしてその一部を展開ボックスに配置するか、証明書を展開ボックスに設定してその一部をJenkinsに配置しますか?証明書はJenkinsと呼ばれるユーザーの名前である必要がありますか、それともどのユーザーのものでもかまいませんか?開発ボックスにはJenkinsユーザーがいません。

互換性のないsshタイプが多数あることは知っていますが、Jenkinsにはそれが必要ですか?

これをすべて設定する方法(キーの生成方法、キーの配置場所など)に関するガイドを見つけた人はいますか?

22
John Little

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... [email protected]

手順2、pubファイルの内容をターゲットサーバーに貼り付けます。

target:~ bob$ cd .ssh
target:~ bob$ vi authorized_keys (paste in the stuff which was output above.)

.sshディレクトリにpermissoins 700があり、authorized_keysファイルにパーミッション644があることを確認してください

ステップ3、Jenkinsを構成する

  1. Jenkins Webコントロールパネルで、[Jenkinsの管理]-> [システムの構成]-> [SSH経由で公開]に移動します。
  2. ファイルのパスを入力するか、 「var/lib/jenkins/.ssh/id_rsa」、またはターゲットサーバーと同じコンテンツに貼り付けます。
  3. パスフレーズ、サーバー、ユーザーの詳細を入力すると、準備完了です!
35
John Little

Windowsの場合:

  1. Jenkinsにリポジトリに必要なプラグインをインストールします(例:GitHubはGitHubおよびGitHub Authenticationプラグインをインストールします)。
  2. PuTTYキージェネレーターを使用してキーを生成するか、git bashで次のコマンドを実行してキーを生成できます:$ ssh-keygen -t rsa -b 4096 -C [email protected]
  3. 秘密鍵はOpenSSHでなければなりません。 PuTTYキージェネレーターで秘密キーをOpenSSHに変換できます
  4. SSHキーは、パブリックとプライベートのペアで提供されます。公開鍵は、複製するリポジトリに挿入されます。秘密鍵はJenkinsに資格情報として保存されます
  5. SSHキーを使用するには、HTTPSではなくSSH URLをコピーする必要があります。
1
Bojan