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!