È possibile stabilire una connessione SSH con un server con Java?Connessione SSH Java
risposta
Sì, ho usato http://sourceforge.net/projects/sshtools/ in un'applicazione Java per connettersi a un server UNIX su SSH, ha funzionato abbastanza bene.
Ok, lo proverò :) thx – Benni
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.
ok la libreria jsch ha funzionato bene ed è stata molto facile da implementare. La ringrazio per la risposta. – Benni
Per effettuare la connessione ai server Java, è necessaria un'implementazione di SSHD (il client ssh non è sufficiente). Si può provare Apache SSHD,
Perché sshd è già in esecuzione sulla maggior parte dei sistemi, un'alternativa più semplice è quello di connettersi al server attraverso un tunnel SSH.
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);}
}
}
perfetto. ha funzionato per me –
Controllare [http://stackoverflow.com/questions/3071760/ssh-connection-with-java/9019095#9019095] – World
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