JAVA se utiliza JSch implementación de la biblioteca de SSH

I. Introducción

  JSch biblioteca puede lograr la conexión de Java Linux servidor y comandos de operación, archivos, y soporte para una variedad de modelo de licencia común. URL: http://www.jcraft.com/jsch/

  SSH.Net marco similar en C #.

 

En segundo lugar, el caso

  1, el nuevo proyecto Maven, añadir las siguientes dependencias en pom.xml:

    <dependencias> 
        <- https: // mvnrepository.com/artifact/com.jcraft/jsch -> 
        <dependency> 
            <groupId> com.jcraft </ groupId> 
            <artifactId> jsch </ artifactId> 
            <versión> 0.1 . 55 </ version> 
        </ dependency> 
    </ dependencias>

  2, crear una clase ShellTest, dice lo siguiente:

empaquetar com.test; 

importar com.jcraft.jsch *. ; 

importar javax.swing *. ;
importación java.io.FilterInputStream;
importación java.io.IOException; 

/ ** 
 * @author Sindrol 10/03/2020 11:16
  * / 
público  de clase ShellTest { 

    públicas  estáticas  void main (String [] args) lanza JSchException { 
        JSch jsch = nueva JSch ();
        // jsch.setKnownHosts ( "C:. \\ \\ XXX Usuarios \\ \\ ssh known_hosts");
        Anfitrión String = JOptionPane.showInputDialog ( "Enter hostname", "192.168.213.134" );
        int port = 22 ; 
        Usuario Cadena = "raíz" ; 
        Sesión Sesión = jsch.getSession (usuario, host, 22 ); 
        Cadena contraseña = JOptionPane.showInputDialog ( "Enter password", "123456" ); 
        session.setPassword (passwd); 
        session.setUserInfo ( nuevo MyUserInfo ()); 
        session.connect ( 30000 ); 
        Canal Channel = session.openChannel ( "shell" );
        // ((ChannelShell) canal).
        // uso Ventana problema 
        channel.setInputStream ( nueva nueva FilterInputStream (el System.in) { 
            @ Override 
            pública  int Read ( byte [] B, Int OFF, int len) lanza IOException {
                 retorno in.read (B, OFF (longitud> 1024 1024? : lEN)); 
            } 
        }); 
        // channel.setInputStream (System.in); 
        channel.setOutputStream (System.out);
         // eliminar la salida de color de la consola 
        ((ChannelShell) canal) .setPtyType ( "VT102 " );
         //((ChannelShell) canal) .setEnv ( "LANG", "zh_CN"); 
        channel.connect (3 * 1000 ); 
    } 

    Pública  estática  clase MyUserInfo implementos de información del usuario, UIKeyboardInteractive { 
        @ Override 
        pública Cadena getPassword () {
             retorno  nula ; 
        } 

        @ Override 
        pública  booleano promptYesNo (String mensaje) { 
            Object [] Opciones = { "sí", "no" };
            int foo = JOptionPane.showOptionDialog ( nulo , 
                    mensaje,
                     "Warning" ,
                    JOptionPane.DEFAULT_OPTION, 
                    JOptionPane.WARNING_MESSAGE, 
                    nula , opciones, opciones [0 ]);
            volver foo == 0 ; 
        } 

        @ Override 
        pública Cadena getPassphrase () {
             retorno  nula ; 
        } 

        @ Override 
        pública  booleano promptPassphrase (String mensaje) {
             retorno  falsa ; 
        } 

        @ Override 
        pública  booleano promptPassword (String mensaje) {
             retorno  falsa  ;
        }

        @ Override 
        pública  vacío ShowMessage (String mensaje) { 
            JOptionPane.showMessageDialog ( nula , mensaje); 
        } 

        @ Override 
        pública String [] promptKeyboardInteractive (cadena de destino, 
                                                  String nombre, 
                                                  instrucción de cadena, 
                                                  String [] pronta, 
                                                  boolean [] eco) {
             retorno  nula ; 
        } 
    } 
}

  3, ejecute directamente (o etiquetado después de ejecutar ventana Jar cmd) efecto

   

 

   

 

  

 

  

 

 

 

 

  

 

Supongo que te gusta

Origin www.cnblogs.com/songxingzhu/p/12454976.html
Recomendado
Clasificación