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