Más información: http://www.cleondris.ch/en/opensource-ssh2.php
Tema:
Ganymed SSH-2 para Java es una biblioteca que implementa el protocolo SSH-2 en Java puro (probado en J2SE 1.4.2 y 5.0). Permite conectarse a servidores SSH desde programas Java. Admite sesiones SSH (ejecución remota de comandos y acceso al shell), reenvío de puertos locales y remotos, reenvío de flujo local, reenvío X11, SCP y SFTP. No hay dependencias de ningún proveedor de JCE, ya que se incluyen todas las funciones criptográficas.
Tema:
复制代码代码如下:
@Prueba
prueba de vacío públicoSsh() {
Nombre de host de cadena = "192.168.0.1";
Nombre de usuario de cadena = "raíz";
Contraseña de cadena = "contraseña";
intentar {
/* Crear una instancia de conexión */
Conexión conexión = nueva conexión (nombre de host);
/* Ahora conéctate */
conexión.connect();
System.out.println("conectar bien");
/*
* Autenticar. Si recibe una IOException que dice algo como
* "La contraseña del método de autenticación no es compatible con el servidor en este momento".
* entonces consulte las preguntas frecuentes.
*/
boolean isAuthenticated = conn.authenticateWithPassword(nombre de usuario,contraseña);
si (está autenticado == falso)
throw new IOException("Error de autenticación.");
System.out.println("Autenticación correcta");
/* Crear una sesión */
Sesión de sesión = conn.openSession();
sess.execCommand("uname -a");
System.out.println("Aquí hay información sobre el host remoto:");
/*
* Este ejemplo básico no maneja stderr, que a veces es
* peligroso (lea las preguntas frecuentes).
*/
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = nuevo BufferedReader (nuevo InputStreamReader (stdout));
mientras (verdadero) {
Línea de cadena = br.readLine();
si (línea == nula)
romper;
System.out.println(línea);
}
/* Muestra el estado de salida, si está disponible (en caso contrario, "nulo") */
System.out.println("Código de salida: " + sess.getExitStatus());
/* Cerrar esta sesión */
sess.cerrar();
/* Cerramos la conexión */
conexión.close();
} captura (IOException e) {
e.printStackTrace(System.err);
Sistema.salir(2);
}
}
运行结果:
复制代码代码如下:
conectar bien
Autenticación correcta
Aquí hay información sobre el host remoto:
Linux localhost.localdomain 2.6.22 #1 SMP Miércoles 13 de agosto 11:24:59 CST 2008 i686 i686 i386 GNU/Linux
Código de salida: 0