Estoy escribiendo unas clases para conectar a maquinas remotas con Java, y para la parte de SCP me ha venido muy bien JSch. ( El cliente de SSH lo subo otro dia). Aqui os dejo un Ejemplo de como subir o descargar ficheros mediante SCP:
import com.jcraft.jsch.*;
import java.io.*;
import java.io.IOException;
public class sftpex {
public static void main(String[] args) {
// TODO code application logic here
String username = "jose";
String host = "localhost";
String pass = "aqui_la_password";
String khfile = "/home/jose/.ssh/known_hosts";
String identityfile = "/home/jose/.ssh/id_rsa";
JSch jsch = null;
Session session = null;
Channel channel = null;
ChannelSftp c = null;
try {
jsch = new JSch();
session = jsch.getSession(username, host, 22);
session.setPassword(pass);
jsch.setKnownHosts(khfile);
jsch.addIdentity(identityfile);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
c = (ChannelSftp) channel;
} catch (Exception e) { e.printStackTrace(); }
try {
String fsrc = "/tmp/abc.txt", fdest = "/tmp/cde.txt";
c.put(fsrc, fdest);
System.out.println("File Uploaded");
c.get(fdest, "/tmp/testfile.bin");
System.out.println("File Downloaded");
} catch (Exception e) { e.printStackTrace(); }
c.disconnect();
session.disconnect();
//Para generar el knowhosts: ssh jose@localhost (o ssh a la maquina deseada)
//Para generar el id_rsa sin password : ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa
}
}
Enlace | Sftp Wikipedia





Comentarios recientes