我想使用一些JMS(Java消息服务)库,ActiveMQ或FFMQ,但需要通过SSH协议运行它。我已经开始实现自己的ActiveMQ连接工厂方法,但是通过SSH实现Socket / SocketFactory接口的想法让我感到震惊。它可以让我适应几乎任何JMS实现,而无需真正触及它的代码。像往常一样,有人已经有了这个想法,我发现了这种方法的几种实现方式。
http://svn.apache.org/repos/asf/pig/trunk/lib-src/shock/org/apache/pig/shock/SSHSocketImplFactory.java http://benkstein.net/java/SSHSocketFactory/javadoc/
第一个是Apache Pig的内容中的一个类。第二个是MySQL客户端的黑客/插件,由Frank Benkstein在2004年发布。似乎MySQL社区对它不感兴趣(http://www.webservertalk.com/archive277-2004-7-294282.html)。
我想知道是否还有SocketOverSsh工厂的其他实现,可能更好地记录/支持?
更新:我的主要动机是避免在客户端和服务器上都有额外的开放端口或配置更改。因此,SOCKS或普通端口转发不是理想的解决方案。
答案 0 :(得分:2)
这看起来有点沉重。您是否考虑过使用SOCKS协议寻找解决方案? ssh-client可以通过例如SOCKS代理充当SOCKS代理。用“ssh -D”调用它。好的是JVM already knows how to use SOCKS自动用于网络连接。当然,洞穴就是ssh-connection将在Java app之外建立。