36

これが私のセットアップです:

  1. Jenkins は私の Linux マシンで「jenkins」ユーザーとして実行されています。
  2. Linux - Setup Gitで説明されているように、「jenkins」ユーザー用にssh キーペアを生成しました。
  3. sudo su jenkinsと試してみるとssh -vT git@github.com、常にパスフレーズを尋ねられますが、最終的には常に認証されます。(冗長オプションは、使用されているキーなどを示します)。
  4. jenkins を使用して、GitHub からレポを複製できます。

したがって:

jenkins@alpm:~/jobs/test git/workspace$ git pull 
Enter passphrase for key '/var/lib/jenkins/.ssh/id*_rsa':
Already up-to-date.

この時点まで、私は手紙の指示に従いました。問題は、Jenkins ジョブが次のエラーで失敗することです。

status code 128:
stdout: 
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly

これは、パスフレーズを入力したときに発生するのと同じエラーです (ただし、もちろん、Jenkins はパスフレーズを要求しません)。次のページ:

ssh-agent は、自分のユーザーを使用しているときにパスフレーズを覚えるのに役立ちますが、ジェンキンID は覚えていないことを示しています。私の通常のユーザーとして実行している間は、次のようになることに注意してください。

echo "$SSH_AUTH_SOCK"
/tmp/keyring-nQlwf9/ssh

私の「ジェンキンス」と同じコマンドを実行している間、何も得られません(許可が拒否されても)

問題についての私の理解は、パスフレーズが記憶されていないということです。何か考えはありますか?jenkins ユーザー用に ssh-agent またはキー リング マネージャーを開始しますか? どのように?または、同じマシンに転送する場合、ssh 転送は適していますか? もっと明るいアイデアはありますか?

ps: 私は決してsudo gitted、私は常にジェンキンスまたは自分のユーザー アカウントを使用していました (この SO 投稿で言及されているように - Ubuntu/GitHub SSH キーの問題)

4

8 に答える 8

48

コメントからの回答を数か月間誰も書いていないので、すぐに書きます。

考えられる問題/解決策は 2 つあります。

  1. id_rsa が間違ったユーザーで作成されました

    jenkins ユーザーとして id_rsa を作成します ( hudson cannot fetch from git repository を参照) 。

  2. パスフレーズを空のままにする

于 2012-11-14T01:35:33.490 に答える
15

Jenkins サーバーで行う必要があることを要約すると、次のようになります。

# 1. Create the folder containing the SSH keys if necessary
if [ ! -e ~jenkins/.ssh ]; then mkdir ~jenkins/.ssh; fi
cd ~jenkins/.ssh/

# 2. Create the SSH pair of keys
# The comment will help to identify the SSH key on target systems
ssh-keygen -C "jenkins" -f ~jenkins/.ssh/id_rsa -P ""

# 3. Assign the proper access rights
chown -R jenkins ~jenkins/.ssh/
chmod 700 ~jenkins/.ssh
chmod 600 ~jenkins/.ssh/*

覚えて:

  • キーを生成するときはデフォルトの「id_rsa」名を保持してください。「id_rsa_jenkins」などの名前は正しく設定されていても機能しません。
  • キーにパスフレーズを使用しないでください
  • 公開鍵 (id_rsa.pub) が git サーバー (GitHub、Bitbucket など) にアップロードされていることを確認します。完了したら、次を実行して SSH キーをテストします: ssh -vvv git@github.com(git サーバーに応じてアドレスを変更します)
于 2016-05-18T10:40:28.483 に答える
10

キーを作成するときにパスフレーズを空のままにするだけで、この問題を回避できました。

于 2014-07-02T17:15:19.993 に答える
5

キーを手動で作成した場合、それらはまだあなたが所有しており、ジェンキンが読み取れない可能性があることを付け加えます。試してください:

sudo chown jenkins -R /var/lib/jenkins/.ssh/*
于 2013-09-25T00:32:06.203 に答える
2

Mac ユーザーの場合、次の手順に従って既存のキーを削除し、新しい秘密キーと公開キーを作成することで問題を解決できます。

1. /Users/Username/.sshにある公開鍵と秘密鍵をすべて削除します。

2.Jenkins のCredentialsタブに保存されているすべての資格情報を削除します。

3.Githubリポジトリ設定で定義されている既存のパブリック SSH キーを削除します。

4. https://confluence.atlassian.com/bitbucketserver/creating-ssh-keys-776639788.html#CreatingSSHkeys-CreatinganSSHkeyonLinux&MacOSXの手順に従って、新しいSSH キー (プライベートおよびパブリック: id_rsa およ​​び id_rsa.pub)を作成します。

5.新しく作成した公開 SSH キー (id_rsa.pub) をGithub または同等のリポジトリ設定に設定します。

6.Jenkinsで、Github ユーザー名の秘密 SSH キー (id_rsa) を追加して、新しい資格情報を作成します。

7.エラーはすぐに削除されます。

于 2016-09-27T07:03:23.400 に答える