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 | サーバーからのメッセージを受信せずに送信できるサーバー存続メッセージの数。serverAliveIntervalSeconds が 0でない場合にのみ使用されます。Ant 1.9.7 以降 |
いいえ。デフォルトは 3 |
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 ファイルからパスワードを取得することです。