リモート マシンにログインして、シェル スクリプトを実行したいと考えています。そのスクリプトは、実行時にユーザー ID とパスワードを求めるプロンプトを出します。
JSchでこれを行うことは可能ですか?
ここで考慮すべき点が複数あります。
サーバーに接続するには、スクリプトの名前をコマンドとして指定して、JSch セッションを使用し、次にexec
チャネル (つまりChannelExec ) を使用します。
次に、スクリプトはパスワードを読み取ろうとします。スクリプトの入力ストリームに接続されているチャネルの出力ストリームに渡す必要があります。
スクリプトは、標準入力からではなく、端末から読み取ろうとする場合があります。その場合は、メソッドを使用して「疑似端末」を有効にする必要があります。場合によってはsetPty(true)
、他の方法で端末タイプを設定することもできます。もちろん、これはこれをサポートする SSH サーバーにも依存しますが、他の SSH プログラムを使用してこれを行うことができれば、動作するはずです。