Реализация терминала SSH Shell в WebApp с использованием JSCHJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Реализация терминала SSH Shell в WebApp с использованием JSCH

Сообщение Anonymous »

Я пытаюсь внедрить терминал Shell в веб -приложении с помощью WebSocket Spring. Я могу отправить одну команду на канал JSCH "EXEC" и отправить вывод обратно в WebSocket. Не в состоянии сохранить состояние оболочки, как рабочий каталог, когда я отправляю вторую команду. Как я могу сохранить предыдущее состояние? Я пытался использовать тот же сеанс, но он не работает. < /P>

Код: Выделить всё

 public String sendCommand(String command) {
StringBuilder outputBuffer = new StringBuilder();

try {
Channel channel = sesConnection.openChannel("exec");
((ChannelExec) channel).setCommand(command);
InputStream commandOutput = channel.getInputStream();
channel.connect();
int readByte = commandOutput.read();

while (readByte != 0xffffffff) {
outputBuffer.append((char) readByte);
readByte = commandOutput.read();
}

channel.disconnect();
} catch (IOException ioX) {
logWarning(ioX.getMessage());
return null;
} catch (JSchException jschX) {
logWarning(jschX.getMessage());
return null;
}

return outputBuffer.toString();
}
< /code>
отправить обратно в WebSocket, в контроллере: < /p>
private SSHManager getSSHInstance() {
String errorMessage = null;

if (sshInstance == null) {
sshInstance = new SSHManager(username, password, host, "", port);
errorMessage = sshInstance.connect();
System.out.println("Instance created");
if (errorMessage != null) {
throw new RuntimeException("Could not create an ssh connection");
}
}
System.out.println("Returning created instance");
return sshInstance;
}

@MessageMapping("/user")
@SendTo("/topic/user")
public UserResponse getResponse(String command) {

SSHManager currInstance = getSSHInstance();
String result = currInstance.sendCommand(command);
return new UserResponse(result);
}
[*] Я попытался использовать канал «оболочки» вместо «EXEC», который работал для получения ввода и вывода через стандартный ввод и выходной поток, но я не мог получить вход в реальном времени и вывода от/обратно в WebSocketCocket и пользовательский интерфейс. Я не уверен, как продолжить отсюда. Любое направление о том, где/что посмотреть, было бы очень полезно.

Код: Выделить всё

import com.jcraft.jsch.*;

public class Terminal{
public static void main(String[] args){

try{
JSch jsch=new JSch();

String host = "127.0.0.1";
String user = "user";
String password = "pass";

Session session=jsch.getSession(user, host, 5679);

session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect(10000);

Channel channel=session.openChannel("shell");

channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect(3*1000);
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
< /code>
Чтобы отправить команду из пользовательского интерфейса, у меня есть следующее: < /p>
function sendCommand() {
if (stompClient != null) {
stompClient.send("/app/user", {}, JSON.stringify({'command': $("#command").val()}));
}
}


Подробнее здесь: https://stackoverflow.com/questions/657 ... using-jsch
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Подключение к серверу через SSH с использованием Java - JSCH и выпуска команд Shell
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • SSH Аутентификация пароля в Java с использованием JCraft JSCH не сбои с «Auth Fail», но командная строка "SSH" работает
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Нет отображения для Get/Fed1/WebApp/forward:/webApp/message
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Нет отображения для Get/Fed1/WebApp/forward:/webApp/message
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Нет отображения для Get/Fed1/WebApp/forward:/webApp/message
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»