Bienvenido a nuestro sitio, ahora hallarás la solucíon a lo que buscabas.
Solución:
Otra opción es considerar buscar en la biblioteca JSch. JSch parece ser la biblioteca preferida para algunos grandes proyectos de código abierto, incluidos Eclipse, Ant y Apache Commons HttpClient, entre otros.
Es compatible con los inicios de sesión de usuario/pase y basados en certificados, así como toda una serie de otras características deliciosas de SSH2.
Aquí hay una recuperación remota simple de archivos a través de SFTP. El manejo de errores se deja como ejercicio para el lector 🙂
JSch jsch = new JSch();
String knownHostsFilename = "/home/username/.ssh/known_hosts";
jsch.setKnownHosts( knownHostsFilename );
Session session = jsch.getSession( "remote-username", "remote-host" );
// "interactive" version
// can selectively update specified known_hosts file
// need to implement UserInfo interface
// MyUserInfo is a swing implementation provided in
// examples/Sftp.java in the JSch dist
UserInfo ui = new MyUserInfo();
session.setUserInfo(ui);
// OR non-interactive version. Relies in host key being in known-hosts file
session.setPassword( "remote-password" );
session.connect();
Channel channel = session.openChannel( "sftp" );
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.get("remote-file", "local-file" );
// OR
InputStream in = sftpChannel.get( "remote-file" );
// process inputstream as needed
sftpChannel.exit();
session.disconnect();
Aquí está el código fuente completo de un ejemplo usando JSch sin tener que preocuparse por el ssh key comprobación.
import com.jcraft.jsch.*;
public class TestJSch
public static void main(String args[])
JSch jsch = new JSch();
Session session = null;
try
session = jsch.getSession("username", "127.0.0.1", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("password");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.get("remotefile.txt", "localfile.txt");
sftpChannel.exit();
session.disconnect();
catch (JSchException e)
e.printStackTrace();
catch (SftpException e)
e.printStackTrace();
A continuación se muestra un ejemplo utilizando Apache Common VFS:
FileSystemOptions fsOptions = new FileSystemOptions();
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(fsOptions, "no");
FileSystemManager fsManager = VFS.getManager();
String uri = "sftp://user:[email protected]:port/absolute-path";
FileObject fo = fsManager.resolveFile(uri, fsOptions);
Reseñas y valoraciones
Tienes la opción de añadir valor a nuestra información asistiendo con tu experiencia en las notas.