web-dev-qa-db-ja.com

Jenkinsがエージェントの起動中に「サーバーが1つの秘密鍵を拒否しました」と言うのはなぜですか?

SSHを使用してリモートマシンに正常に接続できますが、Jenkinsからエージェントを起動すると、次のエラーがスローされます。

ERROR: Server rejected the 1 private key(s) for user1 (credentialId:xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/method:publickey)
[01/19/17 05:35:15] [SSH] Authentication failed.
hudson.AbortException: Authentication failed.
    at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.Java:1219)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.Java:714)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.Java:709)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    at Java.lang.Thread.run(Thread.Java:745)
[01/19/17 05:35:15] Launch failed - cleaning up connection
[01/19/17 05:35:15] [SSH] Connection closed.

user1を使用してマスターマシンからノードマシンへのSSH接続を確立できますが、jenkinsからuser1を使用してエージェントを起動しようとすると、秘密キーが拒否されます。この問題を解決する解決策はありますか?

6
ANIL

以下の手順に従ってこの問題を解決します。

ターゲットスレーブノードのコンソールから

  1. 「root」ユーザーに切り替えます。

    Sudo su

  2. ホーム“/var/lib/jenkins”を使用してjenkinsユーザーを追加します。 {注:ホームディレクトリを/var/lib/jenkins}に保持しています:

    useradd -d /var/lib/jenkins jenkins

ジェンキンスマスターから

  1. マスターのJenkinsユーザーからid_rsa.pubキーをコピーします。

    cat /var/lib/jenkins/.ssh/id_rsa.pub

ターゲットスレーブノードのコンソールから

  1. Jenkinsユーザー用のauthorized_keysファイルを作成します。

    mkdir /var/lib/jenkins/.ssh

    vi /var/lib/jenkins/.ssh/authorized_keys

  2. Jenkinsマスターのキーをファイルvimに貼り付けます。 「:wq!」で保存します。

5
Aamir M Meman

私は以下の手順に従ってこの問題を解決しました:

1)スレーブマシンとマスターマシンの両方で正しいパスにいることを確認します。また、適切なユーザーでマシンにサインインする必要があります。新しいグローバルjenkinsユーザー「jenkins」を作成する必要があり、キーをパス「/home/jenkins/.ssh/」に含めたい場合は、最初に「jenkins」ユーザーをマシンに追加します。

2).sshフォルダーを作成し、 に記載されている手順を使用してsshキーを生成しますhttps://support.cloudbees.com/hc/en-us/articles/222978868-How-to-Connect -to-Remote-SSH-Slaves-

3)上記の手順を必ず実行してください-マスターマシンでも1と2

4)同じパスのマスターマシンとスレーブマシンの両方に、同じ「jenkins」ユーザー権限を持つsshキーが必要です。

5)最後に、マシンのIPを前後にsshして、端末からの双方向接続を確認します。

6)jenkinsの認証情報とノードを構成します。 https://linuxacademy.com/で提案されているように、ノード構成で同じリモートルートディレクトリ-"/ home/jenkins"を指定し、 "手動で信頼されたキー検証戦略"を選択してください。 community/posts/show/topic/16008-jenkins-adding-a-slave

0
MeowRude