Soy nuevo en este tipo de aplicaciones Java y busco algún código de muestra sobre cómo conectarme a un servidor remoto utilizando SSH, ejecutar comandos y obtener una salida utilizando Java como lenguaje de programación.¿Cómo ejecuto los comandos SSH en el sistema remoto usando Java?
Respuesta
Tenga una mirada en Runtime.exec() Javadoc
Process p = Runtime.getRuntime().exec("ssh myhost");
PrintStream out = new PrintStream(p.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
out.println("ls -l /home/me");
while (in.ready()) {
String s = in.readLine();
System.out.println(s);
}
out.println("exit");
p.waitFor();
¿Funciona? ¿Por qué se le dio un -1? – Zubair
@Zubair - El tipo que dio -1 no se ha molestado en explicar su punto de vista. Esta solución funciona porque es tan simple como solo es posible. No es "puro java", sin embargo, esto es un inconveniente, pero si estás en Linux, no puedes simplificarlo sin utilizar bibliotecas de terceros. – bobah
bien, gracias por la explicación – Zubair
utilicé para ganymede hace esto algunas síes ... http://www.cleondris.ch/opensource/ssh2/
Puede echar un vistazo a este marco basado en Java para la ejecución remota de comandos, incl. a través de SSH: https://github.com/jkovacic/remote-exec Se basa en dos bibliotecas SSH de código abierto, ya sea JSch (para esta implementación incluso se admite una autenticación ECDSA) o Ganymed (una de estas dos bibliotecas será suficiente). A primera vista, puede parecer un poco complejo, tendrás que preparar muchas clases relacionadas con SSH (proporcionando detalles del servidor y del servidor, especificando detalles de encriptación, proporcionando claves privadas compatibles con OpenSSH, etc., pero el SSH en sí es bastante complejo) también). Por otro lado, el diseño modular permite la inclusión simple de más bibliotecas SSH, fácil implementación del procesamiento de salida de otros comandos o incluso clases interactivas, etc.
A continuación, se muestra la forma más sencilla de SSh en Java. Descargar cualquiera de los archivos en el siguiente enlace y extraer, a continuación, añadir el archivo jar desde el archivo extraído y añadir a su trayectoria de la estructura del proyecto http://www.ganymed.ethz.ch/ssh2/ y utilizar el siguiente método
public void SSHClient(String serverIp,String command, String usernameString,String password) throws IOException{
System.out.println("inside the ssh function");
try
{
Connection conn = new Connection(serverIp);
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(usernameString, password);
if (isAuthenticated == false)
throw new IOException("Authentication failed.");
ch.ethz.ssh2.Session sess = conn.openSession();
sess.execCommand(command);
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
System.out.println("the output of the command is");
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
System.out.println("ExitCode: " + sess.getExitStatus());
sess.close();
conn.close();
}
catch (IOException e)
{
e.printStackTrace(System.err);
}
}
- 1. ¿Cómo ejecuto los comandos del sistema en javascript?
- 2. ¿Cómo se ejecuta un comando en un sistema remoto en una secuencia de comandos de BASH?
- 3. Ejecutando comandos sobre ssh con Java
- 4. ¿Cómo hacer que ssh mate el proceso remoto cuando interrumpo el ssh?
- 5. Ejecutando comandos de script después de SSH
- 6. Cómo ejecutar comandos del sistema (linux/bsd) usando Java
- 7. Ejecutar comando remoto a través de ssh usando Maven3
- 8. pasar variables en orden ssh remoto
- 9. ¿Cómo ejecuto los comandos Bash y recolecto los resultados de Java?
- 10. Verificar los requisitos del sistema usando Java
- 11. ¿Cómo ejecuto un script php a través de SSH?
- 12. ¿Cómo ejecuto un programa usando Maven?
- 13. ¿Cómo abrir el símbolo del sistema e insertar comandos usando Java?
- 14. ¿Cómo hacer llamadas de comandos del sistema en Java/Groovy?
- 15. Cómo activar el comando remoto si el remoto no existe
- 16. ¿Cómo ejecuto el programa .jar java en la línea de comandos de Windows 7?
- 17. ¿Cómo mostrar el nombre del nombre de host en la pantalla cuando ingresa al sistema remoto?
- 18. ¿Cómo ejecuto las secuencias de comandos de Groovy como Java desde la línea de comandos?
- 19. Usando Maven, ¿cómo ejecuto pruebas específicas?
- 20. La mejor manera de sincronizar el código en un servidor remoto usando SCP (Copia SSH)
- 21. ¿Cómo ejecuto las secuencias de comandos Lua en Android en una aplicación Java?
- 22. ¿Cómo copiar un archivo a un servidor remoto en Python usando SCP o SSH?
- 23. ¿Cómo ejecuto un servidor remoto Fast Scala Compiler?
- 24. JSch: Cómo enviar ssh a un servidor usando ssh-keys
- 25. ssh ejecución remota de comandos y ulimit
- 26. ¿Cómo ejecuto un programa de línea de comandos en Delphi?
- 27. ¿Es posible abrir un túnel SSH usando Java?
- 28. ¿Abrir la aplicación de texto local para editar el archivo de texto remoto usando ssh?
- 29. Cómo probar si un sistema remoto es alcanzable
- 30. ¿Cómo configuramos SSH usando Perl en Windows?
he publicado un código que podría ayuda en: http://stackoverflow.com/questions/2405885/any-good-jsch-examples –