2009-11-04 25 views
12

Quiero crear un túnel SSH en Java. Noté bastantes bibliotecas de Java SSH en another post. Antes de profundizar en cada opción, tal vez alguien me puede dar algunos fragmentos de código de cómo lo hicieron o, al menos, decirme qué biblioteca de cliente funcionaría mejor.Túnel SSH simple en Java

Solo necesito tunelización. No necesitaré cosas como transferencias de archivos, emulación de terminal, etc. ¿Hay algunas líneas simples de código que pueden reenviar un puerto en el servidor para trabajar en el adaptador localhost de mi cliente? Idealmente, tanto el cliente como el servidor estarían en Java, pero por ahora me conformaré con el cliente.

+0

NB: Esta pregunta también fue informativo sobre este tema: http: // stackoverflow.com/questions/3954454/fast-implementation-of-a-port-forward-in-java –

+0

He aquí un ejemplo que reuní en otra pregunta similar http://stackoverflow.com/a/16023513/311525 – Scott

Respuesta

20

Bueno, como se señaló en la otra pregunta, JSch es de hecho una gran opción y tiene varios ejemplos here. La clase PortForwardingL.java podría ser un buen punto de partida.

+0

I como la licencia BSD en esta biblioteca. ¡Gracias por indicarme directamente la muestra que necesitaba ver! – User1

16

Puede hacerlo con varias bibliotecas. Mi favorita es la biblioteca ssh dentro del paquete MindTerm,

http://linuxmafia.com/pub/java/ISNetworks-MindTerm-1.2.1-SCP3.tar.gz

Puede abrir una conexión de túnel de este tipo,

SSHSocketFactory fact = new SSHSocketFactory(sshHost, sshPort, new SSHPasswordAuthenticator(sshUser, sshPassword)); 

    sock = fact.createSocket(host, port); 
+2

+1 Wow. Esto es muy simple. Lástima que la licencia sea un tanto extraña (es malo por no mencionar que necesito algo parecido a BSD). Traté de aceptar esto también como una respuesta, pero SO solo permite una respuesta. Al menos voté tu respuesta. Gracias por tu ayuda. – User1

Cuestiones relacionadas