2011-01-24 20 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/

最初のものは、Apache豚の内臓でどこかのクラスです。 2番目は、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があることです。もちろん、cave-atはssh接続がJavaアプリの外部で確立されるということです。

+0

はい、これはオプションです。 OpenSSHクライアントは、SSHを介してSOCKSをシミュレートすることすらできます。しかし、主な動機は、クライアントとサーバーの両方で追加のポートや構成の変更を避けることです。だから、この特定のアプリケーションのために私はSOCKSに行くつもりはありません。とにかくフィードバックに感謝します。 – abb

+0

なぜSSHを実装の詳細にするのですか?なぜ外部からOpenSSHで永続トンネルを構築し、ブローカを標準ホストとして扱うのでしょうか? –

+0

私は、人々がSSLを実装の「詳細」とするのと同じ理由でそれをやりたいと思います。より使いやすく、堅牢なものにしてください。このアプリケーションは、インターネットホスト上でリモートコマンドを実行するために使用され、SSHが原則としてそこにあります。 – abb

関連する問題