2011-06-01 9 views
5

Actualmente estoy usando una biblioteca para SSH dentro de Java pero parece que no tengo la capacidad de hacer comandos multiparte (como si lo hago passwd user No tengo forma de ingresar la contraseña dos veces para cambiarla porque te hace comienza una nueva sesión cada vez que ingresas un comando). Realmente necesito esta funcionalidad para la aplicación actual en la que estoy trabajando y parece que hay muchas bibliotecas SSH para Java, pero no estoy seguro de cuáles permitirían esto, como algunos no lo hacen.Biblioteca de Java para sesiones interactivas SSH (para poder hacer comandos de varias partes)?

Cualquier consejo sobre una buena biblioteca a tener en cuenta para esto sería muy apreciado.

Para el cierre de patrulla: si se va a tratar de cerrar esto, al menos citar un hilo que se hace la misma pregunta que el mío, y no sólo un general "cuál es una biblioteca ssh buena Java" cuestión

+0

posibles duplicados de [biblioteca SSH para Java] (http://stackoverflow.com/questions/995944/ssh-library-for-java) –

+2

gracias por tratar de cerrar mi hilo por citar uno que no es el lo mismo, pero por favor lea el hilo que citó y verá que no especifica los mismos parámetros que yo, estaba al tanto de ese hilo y no lo hice Hacer mi pregunta específica – Rick

Respuesta

2

Estoy usando la biblioteca Ganymede SSH-2 con gran éxito. Sin embargo, la solicitud de contraseña no debe aparecer para la aplicación, debe ser parte de la negociación de configuración de conexión.

+0

Gracias, ¿miraré a Ganymede (Ganymed?), pero creo que leyó mal lo que dije, es un comando de ejemplo en el que trato de cambiar la contraseña de un usuario usando 'passwd user', no ingrese una contraseña para conectar – Rick

+1

para ref: http://www.cleondris.ch/opensource/ssh2/ ya que tuve un pequeño problema para encontrar la página principal del proyecto – Rick

+0

@Rick OK, ya veo. Suerte con ello. – EJP

0

puede ejecutar comandos interactivos como "usuario passwd" mediante el uso de

session.getStdin().write() refer following snipped 
connection = new Connection(host,port); 
      connection.connect(); 
      // Authenticate 
    boolean result = connection.authenticateWithPassword(username, password); 
Session session = connection.openSession(); 
session.requestPTY("bash"); 
session.execCommand("passwd testuser"); 
session.getStdin().write("newPassword\n".getBytes()); // //for new password 
session.getStdin().write("newPassword\n".getBytes()); //for retype new password 

System.out.println("ExitCode: " + session.getExitStatus()); 
session.close(); 
connection.close(); 
Cuestiones relacionadas