Proporcionar entradas / subcomandos al comando ejecutado a través de SSH con JSch

Estoy tratando de administrar el enrutador a través de la aplicación Java utilizando la biblioteca Jcraft Jsch.

Estoy tratando de enviar la configuración del enrutador a través del servidor TFTP. El problema está en mi código Java porque esto funciona con PuTTY.

Este es mi código de Java:

int port=22; String name ="R1"; String ip ="192.168.18.100"; String password ="root"; JSch jsch = new JSch(); Session session = jsch.getSession(name, ip, port); session.setPassword(password); session.setConfig("StrictHostKeyChecking", "no"); System.out.println("Establishing Connection..."); session.connect(); System.out.println("Connection established."); ChannelExec channelExec = (ChannelExec)session.openChannel("exec"); InputStream in = channelExec.getInputStream(); channelExec.setCommand("enable"); channelExec.setCommand("copy run tftp : "); //Setting the ip of TFTP server channelExec.setCommand("192.168.50.1 : "); // Setting the name of file channelExec.setCommand("Config.txt "); channelExec.connect(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line; int index = 0; StringBuilder sb = new StringBuilder(); while ((line = reader.readLine()) != null) { System.out.println(line); } session.disconnect(); 

yo obtengo

La línea tiene un autocomando no válido ‘192.168.50.1’

El problema es cómo puedo ejecutar esos comandos sucesivos.

Llamar a ChannelExec.setCommand varias veces no tiene ningún efecto.

E incluso si lo hubiera hecho, supongo que el 192.168.50.1 : y Config.txt no son comandos, sino entradas para la copy run tftp : command, ¿no?

Si ese es el caso, debe escribirlos en la entrada de comando.

Algo como esto:

 ChannelExec channel = (ChannelExec) session.openChannel("exec"); channelExec.setCommand("copy run tftp : "); OutputStream out = channelExec.getOutputStream(); channelExec.connect(); out.write(("192.168.50.1 : \n").getBytes()); out.write(("Config.txt \n").getBytes()); out.flush(); 
Intereting Posts