Я использовал SSHJ, чтобы открыть сессию SSH и выполнить команды.
Я столкнулся с проблемой, я не мог получить вывод команд. Кто-нибудь может мне помочь?
SSHClient ssh = new SSHClient();
ssh.addHostKeyVerifier(
new HostKeyVerifier() {
public boolean verify(String arg0, int arg1, PublicKey arg2) {
return true;
}
}
);
ssh.connect(this.hostName, this.port);
ssh.authPassword("santera", "santera1");
//final Console con = System.console();
Session session = ssh.startSession();
session.allocateDefaultPTY();
Shell shell = session.startShell();
Expect expect = new ExpectBuilder()
.withOutput(shell.getOutputStream())
.withInputs(shell.getInputStream(), shell.getErrorStream())
.withEchoInput(System.out)
.withEchoOutput(System.err)
.withExceptionOnFailure()
.build();
expect.sendLine("script test.txt");
expect.expect(contains("%"));
expect.sendLine("ls -l"); // ls -l is a command
expect.expect(contains("%")); // % is a prompt
Я хотел бы получить вывод команды из 'command' в 'prompt'.