Как отправлять и получать данные в/из туннеля SSH в java (jsch)?

Я новичок в SSH-туннелях и пытаюсь найти способ реализовать SSH-туннель между хостом и сервером, и через этот туннель я хочу отправлять и получать данные. Я поискал в сети и увидел, что "jsch" может помочь мне реализовать туннель. Проблема в том, что на http://www.jcraft.com/jsch/examples/ Я не мог понять, как это сделать. Если кто-то из вас знает, как это сделать, не могли бы вы объяснить мне? Или, если у вас есть небольшой фрагмент кода, не могли бы вы добавить некоторые комментарии?

Большое спасибо всем


person Ozer    schedule 21.09.2011    source источник


Ответы (1)


Почему вы хотите сделать это в java?

Вам лучше создать динамический туннель с ssh/PuTTY и использовать его в java, игнорируя при этом сложность SSH в вашем java-коде...

Динамический туннель — это не более чем прокси-сервер SOCKS 5, с которым легко справиться Сеть Java и Proxy + ProxySelector объекты

person Cerber    schedule 21.09.2011
comment
На самом деле то, как вы это делаете, может быть намного проще, но меня попросили реализовать программу, которая может подключаться к хосту и отправлять/получать данные с него. Я внедрил TCP, UDP и т. д., и теперь я пытался это реализовать. Реализация должна быть динамической, поэтому, когда я изменяю тип подключения на SSH в своем файле конфигурации, у меня должен быть туннель SSH. Вот почему я хочу, чтобы это было сложно. И спасибо за пост обязательно попробую. - person Ozer; 21.09.2011
comment
Так почему бы вам не упаковать ssh-импл с вашим приложением (например, plink PuTTY), чтобы делать это тихо в фоновом режиме? Я имею в виду запуск внешнего приложения с помощью Runtime.getRuntime.exec("plink -D 4564 host") - person Cerber; 22.09.2011