7

シェルコマンドラインでsshを介して他のマシンにアクセスするには、いくつかのJenkinsジョブが必要です。

これどうやってするの?

ターゲットサーバーのパスワードを持っていませんが、「キー」ファイルを持っていますが、次のようにジョブを実行すると

ssh -i /path/to/key/file name@someserver some_command

シェルコマンドとして、次のようになります。

ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory

ssh_askpassは、私もJenkinsユーザーもアクセスできないGUIユーティリティです。

Jenkinsユーザー(またはJenkinsが実行されているもの)のパスワードを持っていないため、ログインして〜/ .ssh/id_dsaファイルを作成できません。

何をすべきか?

ありがとう。

4

3 に答える 3

14

キーが無効であるか、キーがパスフレーズで保護されているため、Sshがパスワードを要求しています。

同じコマンドを自分で実行してキーを試し、解決する必要のある問題を見つけてください。

キーがパスフレーズで保護されている場合は、Jenkinsジョブでパスフレーズを入力する適切な方法がないため、パスフレーズを削除する必要があります。あなたはでそれを行うことができますssh-keygen -p -f /path/to/key/file。パスフレーズを削除するには、空のパスフレーズを設定します。

非対話型ビルドジョブでsshコマンドを使用する場合は、おそらくオプションを使用する必要があります-o BatchMode=yes-o StrictHostKeyChecking=no最初のログインをインタラクティブに実行してホストキーを受け入れることができない場合は、を使用することもできます。

于 2012-04-07T20:40:50.393 に答える
3

binファイルssh-askpassをインストールしていなかったので、そのようなファイルやディレクトリはありません...インストールする必要がありました。

Linux:sudo apt-get install ssh-askpass

于 2016-12-07T01:30:52.433 に答える
1

[シェルの実行]フィールドにコマンドを入力して、リモートマシンに直接SSH接続しようとしないでください。代わりに、SSHプラグインまたはPublishOverSSHプラグインを使用してください。jenkinsユーザーのキーを生成する必要はありません。箱から出して動作します。

于 2012-12-12T06:10:32.143 に答える