私はこの問題を何時間も理解しようとしてきましたが、理解できないようです。JSchを使用してAndroid携帯からLinuxコンピューターにSSHで接続しようとしています。コマンドは常に正常に機能しますが、チャネルの出力は通常空です。出力が表示されることもありますが、ほとんどの場合は表示されません。これが私がオンラインで見つけたコードです。
String userName = "user";
String password = "test123";
String connectionIP = "192.168.1.13";
JSch jsch = new JSch();
Session session;
session = jsch.getSession(userName, connectionIP, 22);
session.setPassword(password);
// Avoid asking for key confirmation
Properties prop = new Properties();
prop.put("StrictHostKeyChecking", "no");
session.setConfig(prop);
session.connect();
// SSH Channel
ChannelExec channelssh = (ChannelExec) session.openChannel("exec");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
channelssh.setOutputStream(baos);
// Execute command
channelssh.setCommand("ls");
channelssh.connect();
channelssh.disconnect();
RESULT = baos.toString();
RESULTは通常空です。コマンドをmkdirまたはそのような性質のものに変更すると、ファイルがLinuxコンピューターに表示され、コマンド部分が正しく機能していると確信できます。問題はByteArrayOutputStream内にあるようです。また、ターミナルを介して別のコンピューターでconnectionip、ユーザー名、およびパスワードをテストしたので、資格情報が正しいことがわかります。私はこの問題をグーグルで死に至らしめました、どんな入力でも私を大いに助けてくれるでしょう!