2010-07-21 17 views
7

क्या जावा के साथ सर्वर से एसएसएच कनेक्शन बनाना संभव है?एसएसएच कनेक्शन जावा

+2

चेक [http://stackoverflow.com/questions/3071760/ssh-connection-with-java/9019095#9019095] – World

+0

Fwiw, मैं शीघ्रता से अवलोकन लोगों पर ले लिया नीचे सूचीबद्ध, और sshtools केवल एक जीपीएल लाइसेंस के तहत उपलब्ध है। (जेएसएच बीएसडी के तहत उपलब्ध है और एसएसजेजे अपाचे के तहत उपलब्ध है।) – Mickalot

उत्तर

4

हां, मैंने एसएसएच पर यूनिक्स सर्वर से कनेक्ट करने के लिए जावा एप्लिकेशन में http://sourceforge.net/projects/sshtools/ का उपयोग किया, यह काफी अच्छा काम करता था।

+0

ठीक है, मैं इसे आजमाउंगा :) thx – Benni

3

jsch और sshJ दोनों अच्छे ग्राहक हैं। मैं व्यक्तिगत रूप से एसएसजेजे का उपयोग करता हूं क्योंकि कोड को और अधिक अच्छी तरह से दस्तावेज किया गया है।

जेएसएच का व्यापक उपयोग है, जिसमें ग्रहण और अपाचे चींटी शामिल है। मुझे जेएसएच और एईएस एन्क्रिप्टेड निजी कुंजी के साथ भी समस्याएं आई हैं, जिन्हें 3 डीईएस में पुनः एन्क्रिप्टिंग की आवश्यकता है, लेकिन यह सिर्फ मुझे हो सकता है।

+0

ठीक है जेएसएच लाइब्रेरी ठीक काम करती है और इसे कार्यान्वित करने में बहुत आसान थी। आपके उत्तर के लिए धन्यवाद। – Benni

1

जावा सर्वर से कनेक्शन बनाने के लिए, आपको एसएसएचडी के कार्यान्वयन की आवश्यकता है (एसएसएच क्लाइंट पर्याप्त नहीं है)। आप अपाचे SSHD कोशिश कर सकते हैं,

http://mina.apache.org/sshd/

क्योंकि sshd पहले से ही सबसे सिस्टम पर चल रहा है, एक आसान विकल्प एक SSH सुरंग के माध्यम से सर्वर से कनेक्ट करने के लिए है।

2

हां, यह संभव है। आप नीचे दिए गए कोड की कोशिश कर सकते हैं:

package mypackage; 
import com.jcraft.jsch.ChannelSftp; 
import com.jcraft.jsch.JSch; 
import com.jcraft.jsch.Session; 
import java.io.*; 

public class SSHReadFile 
    { 
    public static void main(String args[]) 
    { 
    String user = "user"; 
    String password = "password"; 
    String host = "yourhostname"; 
    int port=22; 

    String remoteFile="/home/john/test.txt"; 

    try 
     { 
     JSch jsch = new JSch(); 
     Session session = jsch.getSession(user, host, port); 
      session.setPassword(password); 
      session.setConfig("StrictHostKeyChecking", "no"); 
     System.out.println("Establishing Connection..."); 
     session.connect(); 
      System.out.println("Connection established."); 
     System.out.println("Crating SFTP Channel."); 
     ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp"); 
     sftpChannel.connect(); 
     System.out.println("SFTP Channel created."); 
     } 
    catch(Exception e){System.err.print(e);} 
    } 
    } 
+0

सही। मेरे लिए काम किया –

संबंधित मुद्दे