Ganymede ssh2を使用してJavaアプリケーションからサーバーに接続し、そこでいくつかの作業を行います。
これは完全に動作しますが、問題は承認を要求するsshコマンドです(例: コマンドGanymed ssh2:コマンドラインでプロンプトを表示する方法(y/n)
stop someService
戻り
Are you sure (y/n)?
と適切なキーストローク(Y/N)の後に、それは上に移動します。
現在、私はこのようになめらか、SSH2 ganymed例で与えられた実装を使用しています:( 'someServiceを停止')上記のコマンドを述べて、このutilのクラスを呼び出した後
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class ConnectUtil(String hostname, String username, String password, String command)
{
try
{
Connection conn = new Connection(hostname);
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (isAuthenticated == false)
throw new IOException("Authentication failed.");
Session sess = conn.openSession();
sess.execCommand(command);
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
sess.close();
conn.close();
}
catch (IOException e)
{
e.printStackTrace(System.err);
}
}
、それは
でstuckedますString line = br.readLine();
サーバーのタイムアウト後にすべてが壊れます。
この問題を解決する方法についてのアイデアは歓迎されるものではありません。
ありがとう、 ミロス。
は残念ながら、プロンプトは表示されません。このコマンドにはモードがありません。しかし、 'Session'オブジェクトには 'getStdin()'があります。私はそれを使用しようとしましたが、それを使用する方法を理解することはできません。これは私が追加したコードです: '\t \t \tセッションsess = conn.openSession(); \t \t \t sess.execCommand(コマンド); (35)。 \t \t \t \t \t \t InputStream stdout = new StreamGobbler(sess.getStdout()); \t \t \t \t \t \t BufferedReader br = new BufferedReader(new InputStreamReader(stdout));間違ったことがありますが、何を知らないのですか? – trivunm
申し訳ありませんが、私が追加したコードは次のとおりです: 'Session sess = conn.openSession(); \t \t \t sess.execCommand(コマンド); (Y)。0122getBytes()); \t \t \t \t \t \t InputStream stdout = new StreamGobbler(sess.getStdout()); \t \t \t \t \t \t BufferedReaderのBR =新しいをBufferedReader(新しいInputStreamReaderの(STDOUT)); ' – trivunm
は、キャリッジリターンに – artbristol