web-dev-qa-db-ja.com

Jenkins for Git内でのSSHキーの管理

私はJenkinsをGitHubがホストするリポジトリで起動して実行しようとしています(Jenkins Gitプラグインを使用)。リポジトリには複数のgitサブモジュールがあるため、複数のデプロイキーを試して管理したいかどうかはわかりません。

私の個人的なGitHubユーザーアカウントは、Jenkinsと連携する各プロジェクトの共同作業者であるため、/var/lib/jenkins/.ssh内でSSHキーを生成し、個人的なGitHubアカウントに追加しました。

ただし、リポジトリURLをJenkinsプロジェクト構成に追加しようとすると、次のようになります。

Failed to connect to repository : Command "git ls-remote -h [email protected]:***/***.git HEAD" returned status code 128:
stdout: 
stderr: Host key verification failed. 
fatal: The remote end hung up unexpectedly

同様に、ビルドをスケジュールすると、次の結果が得られます。

stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

here に概説されているようにSSH構成ファイルをセットアップしようとしましたが、役に立ちませんでした。

誰もが光を当てることができますか?ありがとう

編集

CentOS 5.8を実行していることを追加する必要があります

53
James

Jenkinsが接続しようとするgithub.comホストは、Jenkinsユーザーの$HOME/.ssh/known_hostsの下にリストされていないようです。 Jenkinsはほとんどのディストリビューションでユーザーjenkinsとして実行されるため、公開キーと.sshのリストを格納する独自のknown_hostsディレクトリを持っています。

この問題を解決するために考えられる最も簡単な解決策は次のとおりです。

# Login as the jenkins user and specify Shell explicity,
# since the default Shell is /bin/false for most
# jenkins installations.
Sudo su jenkins -s /bin/bash

cd SOME_TMP_DIR
# git clone YOUR_GITHUB_URL

# Allow adding the SSH Host key to your known_hosts

# Exit from su
exit
63
Tuxdude

Jenkinsユーザーとしてログインしようとしましたか?

これを試して:

Sudo -i -u jenkins #For RedHat you might have to do 'su' instead.
git clone [email protected]:your/repo.git

ホストが追加または承認されていない場合(多くの場合、github/bitbucketへの最初の接続ではhudson/jenkinsとして手動でログインします)に失敗しますが、含まれているリンクはおそらくそれを修正します。

上記がうまくいかない場合は、キーを再コピーしてください。 pubキー(id_rsa.pubなど)であることを確認してください。多分あなたはいくつかのキャラクターを見逃しましたか?

6
Adam Gent

この 記事 に従って、次のコマンドを試すことができます。

   ssh-add -l

キーがリストにない場合は、

   ssh-add /var/lib/jenkins/.ssh/id_rsa_project
4
RabitChang

/ Jenkins/.ssh /に設定と秘密鍵ファイルがある場合、これは私にとってはうまくいきますchown (所有者の変更)これら2つのファイルに対してrestart jenkinsを使用して、jenkinsインスタンスがこれら2つのファイルを読み取るようにします。

1
Jianhong