2011-03-17 17 views
5

Bir Java programında bir SSH tüneli açmak istiyorum, böylece sistemin geri kalanı da bağlantıya erişebilecektir (örneğin bir veritabanının bir bağlantı noktasını localhost'a iletirsem veritabanını açabilmem gerekir) Başka bir programda ... Diğer bir deyişle, unix komutu ssh gibi bir şey için bir Java sarıcı oluşturmak için ne yapmam gerekiyor. Ancak, programın çapraz platform olması gerektiğinden, mümkünse Java'dan bir kütüphane kullanmak istiyorum.Java kullanarak bir SSH tüneli açmak mümkün mü?

(farklı kütüphanelerde bakarak edilmiştir, ancak sistemin geri kalanı henüz kullanabilirsiniz böylece tünel oluşturmak mümkün olmamıştır) bu mümkün mü

+1

VPN ne için değil? – Bobby

+0

@Bobby bazen böyle bir çözüm kullanmak iyidir. – Sacx

+0

@Bobby SSH tünelleri, ağır güvenlikli ortamların İsviçre çakısıdır. Her şeyin geçici olması gerektiği anlamına geldiği sürece, tam üflemeli VPN'leri kurmaktan çok daha kolaydır. – sfussenegger

cevap

5

JSch kütüphane kesinlikle bu kolaylaştırır ve port yönlendirme destekler: Ben Ganymede SSH-2 başarıyla tam olarak bu amaç için, aslında ilk kez çalıştı kullanıyoruz

JSch jsch = new JSch(); 
Session session = jsch.getSession(user, host); 
session.setPassword(password); 
session.connect(timeout); 
session.setPortForwardingL(listenPort, destHost, destPort); 
+0

Notlar: yalnızca bağlantı noktası yönlendirme, ancak dinamik bir iletme iletimi değil, hangi plink-D did.otherwise, I/O istisnası alırsınız: (java.net.SocketException) hedef ana bilgisayara bağlanırken yakalanır: SOCKS sunucusundan yanıtla kötü sürümü var. – cleverpig

0

Belki Jsch?

+2

bunun bir cevap olması mı gerekiyor? – sfussenegger

+0

Bu, teorik olarak bu soruya cevap verebilirken [http://meta.stackexchange.com/q/8259] cevabın temel kısımlarını burada içerecek ve referans için bağlantı sağlayacaktır. – Kev

0

, benim için çok şaşırdım.

İlgili konular