2010-07-21 15 views
7

¿Es posible hacer una conexión ssh a un servidor con java?SSH Connection Java

+2

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

+0

Fwiw, me dio un rápido vistazo a las enumerados a continuación, y sshtools solo está disponible bajo una licencia GPL. (jsch está disponible bajo BSD y sshJ está disponible bajo Apache). – Mickalot

Respuesta

3

jsch y sshJ son buenos clientes. Yo personalmente usaría sshJ ya que el código está documentado mucho más a fondo.

jsch tiene un uso generalizado, incluso en Eclipse y Apache. También tuve problemas con las claves privadas encriptadas jsch y AES, que requerían un nuevo cifrado en 3DES, pero esa podía ser solo yo.

+0

ok la biblioteca jsch funcionó bien y fue muy fácil de implementar. Gracias por su respuesta. – Benni

1

Para hacer la conexión a servidores Java, necesita una implementación de SSHD (el cliente ssh no es suficiente). Usted puede tratar de Apache sshd,

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

Debido sshd ya se está ejecutando en la mayoría de los sistemas, una alternativa más fácil es conectar con el servidor a través de un túnel SSH.

2

Sí, es posible. Puede probar el siguiente código:

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

perfecto. trabajó para mi. –