0
Я хочу выполнить 2 команды с помощью JSch, но они не должны совпадать. Я делаю это, чтобы соединиться от шлюза к серверу (при этом команде SSH имя_сервера)Выполнение команд после прочтения ответа предыдущей команды в JSch
Первой команде: SSH ServerName Второй команды: пароль
Я попробовал несколько подходов, но они продолжают укладку вместе.
JSch jsch = new JSch();
gateway = jsch.getSession(username, host, port);
gateway.setPassword(password);
gateway.setConfig(SessionPool.defaultSessionConfig());
gateway.setHostKeyAlias(host);
gateway.connect(20000);
System.out.println("Session created");
channel = gateway.openChannel("shell");
OutputStream ops = channel.getOutputStream();
PrintStream ps = new PrintStream(ops, true);
channel.connect();
ps.println("ssh SERVER_NAME" + ENTER_KEY);
ps.println(PASSWORD + ENTER_KEY);
ps.close();
InputStream in = channel.getInputStream();
byte[] bt = new byte[1024];
while (true) {
while (in.available() > 0) {
int i = in.read(bt, 0, 1024);
if (i < 0)
break;
String str = new String(bt, 0, i);
// displays the output of the command executed.
System.out.print(str);
}
if (channel.isClosed()) {
break;
}
}
Вы говорите, что вы пытаетесь запустить две команды, но я вижу только один («SSH SERVER_NAME») в коде, который вы публикуемую. Можете ли вы описать, как программа терпит неудачу? Вы получаете сообщения об ошибках? Вы получаете какие-то исключения? – Kenster
Вторая команда - это пароль для SERVER, с которым я пытаюсь подключиться с помощью SERVER_NAME. Ошибок нет. Команды 2 просто идут вместе, а не одновременно, как я хотел. План состоит в том, что вторая команда выполняет после запроса, что первая команда сгенерирована. Кажется, я не понимаю. –
Нет ошибки? Тогда что происходит, когда вы запускаете свою программу? – Kenster