2010-07-21 20 views
7

È possibile stabilire una connessione SSH con un server con Java?Connessione SSH Java

+2

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

+0

FWIW, ho preso un rapido sguardo a quelli elencati di seguito, e sshtools è disponibile solo con una licenza GPL. (jsch è disponibile sotto BSD e sshJ è disponibile sotto Apache.) – Mickalot

risposta

3

jsch e sshJ sono entrambi buoni clienti. Personalmente utilizzerei sshJ perché il codice è documentato molto più a fondo.

jsch ha un uso diffuso, incluso in eclissi e apache. Ho anche avuto problemi con le chiavi private crittografate con jsch e AES, che richiedevano la ri-crittografia in 3DES, ma quello poteva essere solo io.

+0

ok la libreria jsch ha funzionato bene ed è stata molto facile da implementare. La ringrazio per la risposta. – Benni

1

Per effettuare la connessione ai server Java, è necessaria un'implementazione di SSHD (il client ssh non è sufficiente). Si può provare Apache SSHD,

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

Perché sshd è già in esecuzione sulla maggior parte dei sistemi, un'alternativa più semplice è quello di connettersi al server attraverso un tunnel SSH.

2

Sì, è possibile. È possibile provare il seguente codice:

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

perfetto. ha funzionato per me –

Problemi correlati