2009-11-04 14 views
12

Ich möchte einen SSH-Tunnel in Java erstellen. Ich habe einige Java SSH-Bibliotheken unter another post bemerkt. Bevor ich auf die einzelnen Optionen eingehe, kann mir vielleicht jemand ein paar Code-Schnipsel geben, wie sie es gemacht haben, oder mir wenigstens sagen, welche Client-Bibliothek am besten funktioniert.Einfacher SSH-Tunnel in Java

Ich brauche nur Tunneling. Ich brauche keine Daten wie Dateiübertragungen, Terminalemulation usw. Gibt es ein paar einfache Codezeilen, die einen Port auf dem Server weiterleiten können, um auf dem Localhost-Adapter meines Clients zu funktionieren? Im Idealfall wären sowohl der Client als auch der Server in Java, aber ich werde mich erst jetzt für einen Kunden entscheiden.

+0

NB: Diese Frage war auch informativ zu diesem Thema: http: // stackoverflow.com/questions/3954454/fast-implementation-of-a-port-forward-in-java –

+0

Hier ist ein Beispiel, das ich auf eine andere ähnliche Frage http://stackoverflow.com/a/16023513/311525 – Scott

Antwort

20

Nun, wie in der anderen Frage erwähnt, ist JSch in der Tat eine große Auswahl und mehrere Beispiele here hat. Die PortForwardingL.java Klasse könnte ein guter Ausgangspunkt sein.

+0

I zusammenstellen wie die BSD-Lizenz für diese Bibliothek. Danke, dass Sie mich direkt auf die Probe hingewiesen haben, die ich sehen musste! – User1

16

Sie können dies mit mehreren Bibliotheken tun. Mein Favorit ist die SSH-Bibliothek innerhalb Mindterm Pakets,

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

Sie eine getunnelte Verbindung wie diese öffnen können,

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

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

+1 Wow. Das ist sehr einfach. Schade, die Lizenz ist irgendwie seltsam (mein schlechtes für die Erwähnung ich brauche etwas BSD-like). Ich habe versucht, dies auch als Antwort zu akzeptieren, aber SO lässt nur eine Antwort zu. Ich habe deine Antwort zumindest aufgefrischt. Danke für Ihre Hilfe. – User1