2009-11-04 2 views
12

Java에서 SSH 터널을 만들고 싶습니다. another post에 꽤 많은 Java SSH 라이브러리가 있음을 알았습니다. 각 옵션을 살펴보기 전에 누군가가 나에게 어떻게 코드를 보여 주 었는지, 또는 적어도 어떤 클라이언트 라이브러리가 가장 잘 작동하는지 알려주는 코드 스 니펫을 제공 할 수 있습니다.Java의 단순 SSH 터널

터널링 만하면됩니다. 나는 파일 전송, 터미널 에뮬레이션 등과 같은 것들을 필요로하지 않을 것이다. 내 클라이언트의 로컬 호스트 어댑터에서 작동하도록 서버의 포트를 전달할 수있는 간단한 몇 줄의 코드가 있는가? 이상적으로는 클라이언트와 서버 모두 Java로 존재할 것이지만 지금은 클라이언트로만 해결할 것입니다.

+0

NB MindTerm 패키지 내부의 SSH 라이브러리 stackoverflow.com/questions/3954454/fast-implementation-of-a-port-forward-in-java –

+0

여기에 또 다른 비슷한 질문에 대한 예가 나와 있습니다. http://stackoverflow.com/a/16023513/311525 – Scott

답변

20

다른 질문에서 지적한 것처럼 JSch은 실제로 좋은 선택이며 여러 가지 예가 here입니다. PortForwardingL.java 클래스는 좋은 시작점 일 수 있습니다.

+0

I 이 라이브러리의 BSD 라이센스처럼. 보고 싶었던 샘플을 직접 알려 주셔서 감사합니다! – User1

16

여러 라이브러리에서이 작업을 수행 할 수 있습니다. 이 질문은이 주제에 유익했다 : HTTP : // 내가 제일 좋아하는,

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

당신은이 같은 터널링 연결을 열 수

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

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

+1 와우. 이것은 매우 간단합니다. 라이센스가 너무 이상하다 (BSD와 비슷한 것을 필요로하지 않는다는 것에 대해 나쁘다). 나는 이것을 대답으로 받아들이려고했지만, 그래서 오직 하나의 대답만을 허용한다. 나는 적어도 당신의 대답을 upvoted. 당신의 도움을 주셔서 감사합니다. – User1