0

Jenkins SlaveをWindowsサービスとして実行すると、gitは次のエラーでフェッチに失敗します

The server's host key is not cached in the registry

このサービスは、パテを使用して設定した特定のドメインユーザーとして実行されています。そのユーザーでマシンにログインすると、Git Bashはパスワードを要求せずに機能するため、SSHキーが正しく設定されます。

コマンドラインを使用してユーザーの下でJenkinsスレーブを起動すると、ビルドが機能するときにsshキーが設定されることがわかりました。使用するコマンドは

javaws http://brick:8083/computer/nsw-buildbox1/slave-agent.jnlp

これは完全に正常に機能します。サービスが同じドメインユーザーとして実行されているにもかかわらず、.sshフォルダーが見つからないという点で何か違うことがあるのではないかと思います。誰かがこの問題に遭遇し、それを修正する方法を知っていますか?Windowsサービスは既知のホストをどこで検索しますか?

回避策があることを知っていても、マシンを再起動すると、ログインしてスタートアップコマンドを実行するまでビルドは機能しません。

4

2 に答える 2

2

この質問への回答が遅れる可能性があることは承知していますが、これが問題の根本的な原因です。

  • javaws http://brick:8083/computer/nsw-buildbox1/slave-agent.jnlpによってスレーブを実行 する場合、実際には現在ログインしているユーザーとしてスレーブを実行しています。システムには、現在のユーザーの ssh セッションが正しくキャッシュされています。

  • ただし、サービスとしてインストールすることを選択した場合、Windows サービスは実際には現在のユーザーとして実行されていません。そのため、「サーバーのホスト キーがレジストリにキャッシュされていません」というエラーが常に表示されます。はい、サービスのユーザーとしてサーバーに接続したことがありません。これを修正するには、サービスを現在のユーザーとして手動で実行する必要があります。

    1. 「services.msc」を実行します
    2. 「Jenkins Slave」サービスを見つけます
    3. プロパティ -> ログオン -> 現在のユーザーを選択します。
于 2015-05-04T02:46:15.273 に答える
0
于 2012-10-03T06:32:31.193 に答える