最近在搞SSH协议,晕了,有谁能帮帮我吗,呜呜呜呜呜呜~~~~(>_<)~~~~ 

解决方案 »

  1.   

    我贴点代码上来,给大家看看吧
    /*
     * 建立SSH  session及channel
     */
    JSch jsch = new JSch();
    int OUTTIME = 60;
    Session session = null;
    try{
    session = jsch.getSession(loginname.toString(), ip);
    }catch(NumberFormatException e){
    e.printStackTrace();
    }catch(JSchException e){
    e.printStackTrace();
    }
    session.setPassword("test"); //设置密码
    session.setUserInfo(defaultUserInfo);
    Channel channel=null;
    try{
    session.init(socket, client);
    session.connect(OUTTIME*1000);
    session.setUser(loginname);

    channel = session.openChannel("shell");
    channel.setInputStream(inputStream);//此处将命令流放入channel中
    如何在此获得此命令得到的结果流?????????         //得到流后,我还要对流进行加密,再由下面的socket发送出去
    socket.getOutputStream().write(byte[]);
    }
    channel.connect(OUTTIME*1000);

    }catch(JSchException e){
    e.printStackTrace();
    System.out.println("Connect deny");
    }
      

  2.   

    我在项目中,使用JSch开发了一个模拟远程命令行窗口的组件,里在就涉及到对输入输出流的重定向
    在channel.setInputStream和channel.setOutputStream中,分别指向自定义的输入输入出流类,然后在自定义的输入输入出流的类里,重载相应的方法,就OK啦。不难的。输出流,继承自printStream。输入流直接继承自InputStream