2011-03-17 6 views
5

Java 프로그램에서 SSH 터널을 열어 시스템의 나머지 부분에서도 연결에 액세스 할 수 있도록합니다 (예 : 데이터베이스 용 포트를 localhost에 전달하면 데이터베이스를 열 수 있어야합니다. 다른 프로그램에서) ... 다른 말로하면 unix 명령 ssh와 같은 것에 대한 Java 래퍼를 만들기 위해 필요한 작업입니다. 그러나 크로스 플랫폼이되도록 프로그램이 필요하므로 가능한 경우 Java 라이브러리를 사용하고 싶습니다.Java를 사용하여 SSH 터널을 열 수 있습니까?

(I 다른 도서관에서 찾고있다,하지만, 시스템의 나머지 부분은 아직 사용할 수 있도록 터널을 만들 수 없었다)이게 가능

+1

VPN이 필요하지 않습니까? – Bobby

+0

@Bobby 때로는 그러한 솔루션을 사용하는 것이 좋습니다. – Sacx

+0

@Bobby SSH 터널은 방화벽이 많은 환경의 스위스 군용 칼입니다. 모든 것이 임시적인 것이기 만하면 모든 기능을 갖춘 VPN을 설치하는 것보다 사용하기가 훨씬 쉽습니다. – sfussenegger

답변

5

JSch 라이브러리는 확실히이 쉽게와 포트 포워딩을 지원합니다 내가 가니메데는 SSH-2는 큰 성공을 정확히 이러한 목적을 위해, 실제로 처음 일을 사용하고있다

JSch jsch = new JSch(); 
Session session = jsch.getSession(user, host); 
session.setPassword(password); 
session.connect(timeout); 
session.setPortForwardingL(listenPort, destHost, destPort); 
+0

Notes : 포트 포워딩 뿐이지 만 plink-D가 수행하는 동적 양말 포워딩은 아닙니다. 그렇지 않으면 대상 호스트에 연결할 때 (java.net.SocketException) 입출력 예외가 발생합니다 : SOCKS 서버로부터 응답 나쁜 버전이 있습니다. – cleverpig

0

아마도 Jsch?

+2

이 답변이 필요합니까? – sfussenegger

+0

이것은 이론적으로 질문에 대답 할 수 있지만 여기에 대답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (http://meta.stackexchange.com/q/8259). – Kev

0

을, 놀랍게도 많이.

관련 문제