【问题标题】:socket-over-ssh factorysocket-over-ssh 工厂
【发布时间】:2011-01-24 08:48:31
【问题描述】:

我想使用一些 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 客户端的 hack/addon,由 Frank Benkstein 在 2004 年发布。似乎 MySQL 社区对它不感兴趣 (http://www.webservertalk.com/archive277-2004-7-294282.html)。

我想知道 SocketOverSsh 工厂是否还有其他实现,可能有更好的文档/支持?

更新:我的主要动机是避免在客户端和服务器上都有额外的开放端口或配置更改。所以 SOCKS 或普通端口转发不是理想的解决方案。

【问题讨论】:

    标签: java sockets ssh factory


    【解决方案1】:

    这看起来有点重。您是否考虑过使用 SOCKS 协议寻找解决方案? ssh-client 可以充当 SOCKS 代理,例如用“ssh -D”调用它。好在JVM already knows how to use SOCKS 自动用于网络连接。当然,需要注意的是 ssh 连接将在 Java 应用程序之外建立。

    【讨论】:

    • 是的,这可能是一个选项。 OpenSSH 客户端甚至可以通过 SSH 模拟 SOCKS。但是,我的主要动机是避免客户端和服务器上的额外端口或配置更改。所以对于这个特定的应用程序,我不会选择 SOCKS。无论如何感谢您的反馈。
    • 为什么要让 SSH 成为您实施的一个细节?为什么不在外部使用 OpenSSH 构建持久隧道并将代理视为标准主机?
    • 我想这样做的原因与人们让 SSL 成为实施的“细节”的原因相同:使其更加用户友好和健壮。该应用程序将用于在 Internet 主机上执行远程命令,并且 SSH 将作为一项规则存在。
    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2017-02-12
    • 2011-12-16
    相关资源
    最近更新 更多