2011-01-24 22 views
3

我想使用一些JMS(Java消息服務)庫,ActiveMQ或FFMQ,但需要通過SSH協議運行它。我已經開始實現我自己的ActiveMQ的連接工廠方法,但是通過SSH實現Socket/SocketFactory接口的想法讓我吃了一驚。它可以讓我適應幾乎所有的JMS實現,而不必真正觸及它的代碼。像往常一樣,有人已經有了這個想法,我發現這種方法的幾個實現。套接字ssh工廠

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

第一個是在豬的Apache的內臟某處的類。第二個是2004年由Frank Benkstein發佈的針對MySQL客戶端的黑客/插件。看起來MySQL社區對它並不感興趣(http://www.webservertalk.com/archive277-2004-7-294282.html)。

我不知道是否有其他的SocketOverSsh工廠的實現,可能更好的記錄/支持?

更新:我的主要動機是避免在客戶端和服務器上都有額外的開放端口或配置更改。所以SOCKS或簡單的端口轉發是不可取的解決方案。

回答

2

這看起來有點沉重。您是否考慮過使用SOCKS協議尋找解決方案?一個ssh客戶端可以充當SOCKS代理,例如,用「ssh -D」調用它。好的是,JVM already knows how to use SOCKS自動進行網絡連接。當然,洞穴安全是ssh連接將建立在Java應用程序之外。

+0

是的,這可能是一個選項。 OpenSSH客戶端甚至可以通過SSH模擬SOCKS。但是,我的主要動機是避免在客戶端和服務器上進行額外的端口或配置更改。所以對於這個特定的應用程序,我不會去SOCKS。無論如何感謝您的反饋。 – abb 2011-01-24 09:13:55