0
javaコードを使用してSSHとの対話型接続を試みています。私はjschを使ってビルダーを期待しています。しかし、それは私のことだよ"error messagejava.io.EOFException:入力が閉じられました"がexpectbuilderにあります。しかし、同じことを私はパテを介して接続すると正常に動作します。誰かが私が間違っているところで私を助けることができますか? ここに私のコードだerror messagejava.io.EOFException:期待ビルダーで入力が閉じられました
package src.main.java;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.concurrent.TimeUnit;
import javax.swing.JOptionPane;
import net.sf.expectit.Expect;
import net.sf.expectit.ExpectBuilder;
import net.sf.expectit.matcher.Matcher;
import net.sf.expectit.matcher.Matchers;
import net.sf.saxon.functions.Contains;
import com.eviware.soapui.support.scripting.SoapUIScriptEngine;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.UserInfo;
public class SSHConnect {
//String remoteFile="/home/john/test.txt";
public static void main(String[] args) {
String user = "user";
String password = "password";
String host = "hostname";
int port=22;
try
{
JSch jsch = new JSch();
// jsch.
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
Channel channel=session.openChannel("exec");
channel.connect();
System.out.println("chanel connect");
Expect expect = new ExpectBuilder()
.withInputs(channel.getInputStream())
.withOutput(channel.getOutputStream())
.withTimeout(10, TimeUnit.SECONDS)
.withExceptionOnFailure()
.build();
expect.interact();
Expect p= expect.sendLine("ssh serverName");
String check1=expect.expect(contains("Could"));
expect.sendLine("yes");
String check= expect.expect(contains("password"));
expect.sendLine("password");
System.out.println("check"+check1);
}
catch(Exception e){System.err.print("error message"+ e);}
}
private static Matcher contains(String string) {
Matcher matcher=Matchers.contains(string);
return matcher;
}
}