Foro de elhacker.net

Programación => Java => Mensaje iniciado por: madara1412 en 30 Septiembre 2014, 09:30 am



Título: ayuda Ganymed ssh2 windows
Publicado por: madara1412 en 30 Septiembre 2014, 09:30 am
hola estoy realizando una conexión ssh para windows con la libreria Ganymed
la cosa es que no se como ejecutar mas de un comando ala vez

Código
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import ch.ethz.ssh2.Connection;
  6. import ch.ethz.ssh2.Session;
  7. import ch.ethz.ssh2.StreamGobbler;
  8. public class asd
  9. {
  10. public static void main(String[] args)
  11. {
  12. String hostname = "192.168.56.2";
  13. String username = "koko";
  14. String password = "koko";
  15. int port =2222;
  16. try
  17. {
  18.  
  19. Connection conn = new Connection(hostname,port);
  20. conn.connect();
  21.  
  22. boolean isAuthenticated = conn.authenticateWithPassword(username, password);
  23. if (isAuthenticated == false)
  24. throw new IOException("Authentication failed.");
  25.  
  26. Session sess = conn.openSession();
  27. Session sesss = conn.openSession();
  28. sess.execCommand("cmd /c dir");
  29.  
  30. System.out.println("Here is some information about the remote host:");
  31.  
  32. InputStream stdout = new StreamGobbler(sess.getStdout());
  33. while (true)
  34. {
  35. String line = br.readLine();
  36. if (line == null)
  37. break;
  38. System.out.println(line);
  39. }
  40. System.out.println("ExitCode: " + sess.getExitStatus());
  41. sess.close();
  42. conn.close();
  43. }
  44. catch (IOException e)
  45. {
  46. e.printStackTrace(System.err);
  47. System.exit(2);
  48. }
  49. }
  50. }


Título: Re: ayuda Ganymed ssh2 windows
Publicado por: madara1412 en 30 Septiembre 2014, 17:42 pm
Hola denuevo una solucion que encontre es ponerle un while o un for antes de que cierre la conexión
no se si este bien ya que esto lo esta haciendo por ahora en windows pero
no se si tambien sirva para un router por ejemplo en donde antes de cambiar una configuracion
ay que poner un comando para indicar que guarde la configuracion actual antes de salir de la session de usuario

Código
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import ch.ethz.ssh2.Connection;
  6. import ch.ethz.ssh2.Session;
  7. import ch.ethz.ssh2.StreamGobbler;
  8. public class asd
  9. {
  10. public static void main(String[] args)
  11. {
  12. String hostname = "192.168.56.2";
  13. String username = "koko";
  14. String password = "koko";
  15. int port =2222;
  16. try
  17. {
  18.  
  19. Connection conn = new Connection(hostname,port);
  20. conn.connect();
  21.  
  22. boolean isAuthenticated = conn.authenticateWithPassword(username, password);
  23. if (isAuthenticated == false)
  24. throw new IOException("Authentication failed.");
  25. String[]P;
  26. P=new String[3];
  27. P[0]="cmd /c dir";
  28. P[1]="cmd /c mkdir aaaa";
  29. P[2]="cmd /c dir";
  30. int n=0;
  31. while(n<3){
  32. Session sess = conn.openSession();
  33. sess.execCommand(P[n]);
  34.  
  35. n++;
  36. System.out.println("Here is some information about the remote host:");
  37.  
  38. InputStream stdout = new StreamGobbler(sess.getStdout());
  39. while (true)
  40. {
  41. String line = br.readLine();
  42. if (line == null)
  43. break;
  44. System.out.println(line);
  45. }
  46.  
  47. System.out.println("ExitCode: " + sess.getExitStatus());
  48.  
  49. sess.close();
  50. }
  51.  
  52. conn.close();
  53. }
  54. catch (IOException e)
  55. {
  56. e.printStackTrace(System.err);
  57. System.exit(2);
  58. }
  59. }
  60. }
  61.  

aqui esta con el pequeño while que en este caso reproduce en serie los 3 comandos al cmd de mi maquina virtual la cosa esque no entiendo bien si se desconecta y vuelve a conectar para realizar el segundo P[1] o si sige en la misma session