2011-01-24 2 views
3

Я хотел бы использовать некоторую библиотеку JMS (Java Message Service), ActiveMQ или FFMQ, но вам нужно запустить ее по протоколу SSH. Я начал внедрять собственный метод фабрики соединений ActiveMQ, но тогда идея внедрения интерфейсов Socket/SocketFactory через SSH поразила меня. Это позволило бы мне адаптировать практически любую реализацию 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 Pig. Второй - это взлом/аддон для клиента MySQL, опубликованный Фрэнком Бенкштейном в 2004 году. Похоже, что сообщество 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 даже может имитировать SOCKS через SSH. Однако моя основная мотивация заключается в том, чтобы избежать дополнительных портов или изменений конфигурации как на клиенте, так и на сервере. Поэтому для этого конкретного приложения я не буду ходить в SOCKS. Спасибо за отзыв в любом случае. – abb

+0

Зачем делать SSH деталью вашей реализации? Почему бы не построить постоянный туннель с OpenSSH извне и рассматривать брокера как стандартный хост? –

+0

Я хотел бы сделать это по той же причине, что люди делают SSL «деталью» реализации: сделайте ее более удобной и надежной. Приложение будет использоваться для выполнения удаленных команд на интернет-хостах, и SSH будет там, как правило. – abb

Смежные вопросы