SSHEXEC

Apache Ant 1.6 以降

説明

SSHデーモンを実行しているリモートマシン上でコマンドを実行します。

注意: このタスクは、Antディストリビューションに含まれていない外部ライブラリに依存しています。詳細については、ライブラリの依存関係を参照してください。このタスクは JSCh 0.1.29 以降でテストされており、JSCh 0.1.28 より前のバージョンでは動作しません。

scp タスクも参照してください。

パラメータ

属性 説明 必須
host 接続したいリモートホストのホスト名またはIPアドレス。 はい
username 接続するリモートホストのユーザー名。 はい
command リモートホスト上で実行するコマンド。 以下の2つのうちどちらか一方
commandResource リモートホスト上で実行するコマンドを含むリソース(ファイル)。Ant 1.7.1 以降
port リモートホストに接続するポート。 いいえ。デフォルトは22
trust これを yes または true に設定すると、すべての不明なホストを信頼します。
注意: これを false (デフォルト)に設定した場合、接続先のホストは knownhosts ファイルにリストされている必要があります。これは、ファイルが存在することも意味します。
いいえ。デフォルトは no
knownhosts リモートホストのアイデンティティを検証するために使用する既知のホストファイルを設定します。これは SSH2 形式のファイルである必要があります。SSH1 形式はサポートされていません。 いいえ。デフォルトは ${user.home}/.ssh/known_hosts
failonerror コマンドが正常に完了しなかった場合にビルドを停止するかどうか。 いいえ。デフォルトは true
password パスワード。 はい。キーベース認証を使用しているか、パスワードがファイルまたは todir 属性で指定されている場合を除きます。
keyfile 秘密鍵を保持するファイルの場所。 はい。キーベース認証を使用している場合
passphrase 秘密鍵のパスフレーズ。 いいえ。デフォルトは空の文字列
sshConfig OpenSSHスタイルの設定を保持するファイルの場所(例:${user.home}/.ssh/config)。ユーザー名とキーファイルは、タスクパラメータで既に指定されていない限り、設定ファイルから読み取られます。Ant 1.10.8 以降 いいえ
suppresssystemout システム出力を抑制するかどうか。Ant 1.9.0 以降 いいえ。デフォルトは false
suppresssystemerr System.err を抑制するかどうか。Ant 1.9.4 以降 いいえ。デフォルトは false
output 出力を書き込むファイルの名前。 いいえ
errorOutput コマンドの標準エラーがリダイレクトされるファイル。Ant 1.9.4 以降 いいえ
append output ファイルを追記するか上書きするか。 いいえ。デフォルトは false。既存のファイルを上書きします。
errAppend errorOutput ファイルを追記するか上書きするか。Ant 1.9.4 以降 いいえ。デフォルトは false。既存のファイルを上書きします。
outputproperty コマンドの出力が格納されるプロパティの名前。commandResource 属性を使用すると、各コマンドの出力にはコマンド自体が接頭辞として付加されます。 いいえ
errorproperty コマンドの標準エラーが格納されるプロパティの名前。Ant 1.9.4 以降 いいえ
resultproperty コマンドのリターンコードが格納されるプロパティの名前。failonerror=false の場合にのみ有効です。Ant 1.9.4 以降 いいえ
timeout 指定された時間内にコマンドが完了しない場合に停止します(ミリ秒単位で指定します。秒単位のタイムアウトを期待する telnet とは異なります)。 いいえ。デフォルトは 0 で、never を意味します。
input 実行されたコマンドの標準入力が取得されるファイル。この属性は、inputstring および inputproperty 属性と相互に排他的です。
commandResource を介して複数のコマンドを実行する場合、入力は各コマンドに対して読み取られます。Ant 1.8.0 以降
いいえ
verbose sshexec がユーザーに詳細な出力をするかどうかを決定します。
-v オプションを指定した ssh コマンドラインツールと同様の出力が生成されます。Ant 1.8.0 以降
いいえ。デフォルトは false
inputproperty 実行されたコマンドの入力ストリームとして機能するプロパティの内容の名前。この属性は、input および inputstring 属性と相互に排他的です。
commandResource を介して複数のコマンドを実行する場合、入力は各コマンドに対して読み取られます。Ant 1.8.0 以降
いいえ
inputstring 実行されたコマンドの入力ストリームとして機能する文字列。この属性は、input および inputproperty 属性と相互に排他的です。
commandResource を介して複数のコマンドを実行する場合、入力は各コマンドに対して読み取られます。Ant 1.8.3 以降
いいえ
usepty 擬似TTYを割り当てるかどうか(ssh -t のように)。Ant 1.8.3 以降 いいえ。デフォルトは false
useSystemIn 現在の標準入力をリモートプロセスに渡すかどうか。Ant 1.9.4 以降 いいえ。デフォルトは false
serverAliveIntervalSeconds サーバーからデータを受信しなかった場合に、暗号化されたチャネルを介してサーバーに応答を要求するメッセージを送信するまでのタイムアウト間隔を秒単位で設定します。Ant 1.9.7 以降 いいえ。デフォルトは 0 で、これらのメッセージがサーバーに送信されないことを示します。
serverAliveCountMax サーバーからのメッセージを受信せずに送信できるサーバー存続メッセージの数。serverAliveIntervalSeconds0 でない場合にのみ使用されます。Ant 1.9.7 以降 いいえ。デフォルトは 3

ネストされた要素として指定されたパラメータ

additionalConfig

Ant 1.10.10 以降

特定の Ant 属性で直接サポートされていない、作成された JSch セッションの設定を追加します。

属性 説明 必須
key 構成設定のキー。 はい
value 構成設定の値。 はい

パスワード認証を使用してリモートマシンでコマンドを実行する

<sshexec host="somehost"
         username="dude"
         password="yo"
         command="touch somefile"/>

キー認証を使用してリモートマシンでコマンドを実行する

<sshexec host="somehost"
         username="dude"
         keyfile="${user.home}/.ssh/id_dsa"
         passphrase="yo its a secret"
         command="touch somefile"/>

パスフレーズなしのキー認証を使用してリモートマシンでコマンドを実行する

<sshexec host="somehost"
         username="dude"
         keyfile="${user.home}/.ssh/id_dsa"
         command="touch somefile"/>

パスフレーズなしのキー認証を使用して、リモートマシン上のコマンドリソース(ファイル)からコマンドセットを実行する

<sshexec host="somehost"
         username="dude"
         keyfile="${user.home}/.ssh/id_dsa"
         commandResource="to_run"/>

セキュリティに関する注意: sshexec タスクにパスワードやユーザー名をハードコードすると、深刻なセキュリティホールになる可能性があります。変数置換を使用し、コマンドラインにパスワードを含めることを検討してください。例:

<sshexec host="somehost"
         username="${username}"
         password="${password}"
         command="touch somefile"/>

次のコマンドラインで Ant を起動する

ant -Dusername=me -Dpassword=mypassword target1 target2

少しはましですが、ユーザー名/パスワードは Unix システム上のすべてのユーザーに公開されています(ps コマンド経由)。最善の方法は、<input> タスクを使用するか、(セキュリティで保護された).properties ファイルからパスワードを取得することです。