いくつかの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または単純なポート転送は望ましい解決策ではありません。
はい、これはオプションです。 OpenSSHクライアントは、SSHを介してSOCKSをシミュレートすることすらできます。しかし、主な動機は、クライアントとサーバーの両方で追加のポートや構成の変更を避けることです。だから、この特定のアプリケーションのために私はSOCKSに行くつもりはありません。とにかくフィードバックに感謝します。 – abb
なぜSSHを実装の詳細にするのですか?なぜ外部からOpenSSHで永続トンネルを構築し、ブローカを標準ホストとして扱うのでしょうか? –
私は、人々がSSLを実装の「詳細」とするのと同じ理由でそれをやりたいと思います。より使いやすく、堅牢なものにしてください。このアプリケーションは、インターネットホスト上でリモートコマンドを実行するために使用され、SSHが原則としてそこにあります。 – abb