Cómo usar jsch con ProxyCommands para reenviar

Quiero conectarme a una máquina que está detrás de un proxy y hacer un cambio de portada después de eso en mi programa Java. (Para poder ssh al cuadro, primero debería haber ssh'ed a la máquina proxy). Generalmente lo hago teniendo las siguientes entradas en mi archivo ~ / .ssh / config:

ProxyCommand ssh proxyhost.com -t nc %h %p
IdentityFile /home/username/username_dsa_key

Y luego ejecuto lo siguiente para hacer portorretratos para asignar hostmachine.com:54321 a mi localhost: 12345:

ssh -A -L12345:localhost:54321 hostmachine.com

Ahora quiero hacer esto con la biblioteca Jsch pero no puedo averiguar cómo conectarme con el segundo host después de abrir el canal en la sesión:

        String proxyHost = "proxyhost.com";
        String host = "hostmachine.com";
        int lport = 12345;
        String rhost = "localhost";
        int rport = 54321;

        JSch jsch=new JSch();
        jsch.setKnownHosts("/home/{user}/.ssh/known_hosts");
        jsch.addIdentity("/home/{user}/.ssh/{user}_dsa_key",passphrase);

        Session session1 = jsch.getSession(user,proxyHost,22);
        session1.connect(3000);
        System.out.println(session1.isConnected());
        Channel channel = session1.openChannel("shell");

        ////// Now what? :)


        channel.disconnect();
        session1.disconnect();

¿Alguna idea?

p.s: He leído los ejemplos en www.jcraft.com/jsch/examples/ pero desafortunadamente no ayudaron en este caso.

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta