2011-01-24 7 views
3

JMS (Java Message Service) 라이브러리, ActiveMQ 또는 FFMQ를 사용하고 싶지만 SSH 프로토콜을 통해 실행해야합니다. 내 자신의 ActiveMQ 연결 팩토리 메소드를 구현하기 시작했지만 SSH를 통해 Socket/SocketFactory 인터페이스를 구현하는 아이디어가 저를 강타했습니다. 실제로 코드를 건드리지 않고도 거의 모든 JMS 구현을 적용 할 수 있습니다. 늘 그렇듯이, 누군가이 아이디어를 이미 가지고 있으며, 나는이 접근 방식의 몇 가지 구현을 발견했다.socket-over-ssh factory

http://svn.apache.org/repos/asf/pig/trunk/lib-src/shock/org/apache/pig/shock/SSHSocketImplFactory.java http://benkstein.net/java/SSHSocketFactory/javadoc/

첫 번째는 아파치 돼지의 내장에 어딘가에 클래스입니다. 두 번째는 2004 년 Frank Benkstein에 의해 발표 된 MySQL 클라이언트 용 해킹/애드온입니다. MySQL 커뮤니티는이 커뮤니티에 관심이 없었습니다 (http://www.webservertalk.com/archive277-2004-7-294282.html).

SocketOverSsh 팩토리의 다른 구현이 있는지 궁금해할까요?

업데이트 : 내 기본 동기는 클라이언트와 서버 모두에서 포트를 열거 나 구성을 변경하지 않는 것입니다. 따라서 SOCKS 또는 일반 포트 포워딩은 바람직한 솔루션이 아닙니다.

답변

2

이것은 약간 무거워 보입니다. SOCKS 프로토콜을 사용하여 솔루션을 찾는 것을 고려 했습니까? ssh-client는 예를 들어 SOCKS 프록시로 작동 할 수 있습니다. "ssh -D"로 호출합니다. 좋은 점은 네트워크 연결을 위해 자동으로 JVM already knows how to use SOCKS입니다. 물론 cave-at는 ssh 연결이 Java 응용 프로그램 외부에서 설정된다는 것입니다.

+0

예, 옵션 일 수 있습니다. OpenSSH 클라이언트는 SSH를 통한 SOCKS 시뮬레이션도 가능합니다. 그러나 나의 주요 동기는 클라이언트와 서버 모두에서 추가 포트 또는 구성 변경을 피하는 것입니다. 그래서이 특정 응용 프로그램을 위해 나는 양말에 가지 않을 것입니다. 어쨌든 피드백에 감사드립니다. – abb

+0

SSH를 구현 세부 사항으로 만드는 이유는 무엇입니까? 외부 적으로 OpenSSH로 영구 터널을 만들고 브로커를 표준 호스트로 취급하는 것이 어떻습니까? –

+0

저는 사람들이 SSL을 구현의 "세부 사항"으로 만드는 것과 같은 이유로 그것을하고 싶습니다.보다 사용자 친화적이고 강력하게 만드십시오. 이 응용 프로그램은 인터넷 호스트에서 원격 명령을 실행하는 데 사용되며 SSH가 규칙에 포함됩니다. – abb

관련 문제