Edit: Je vais garder ma réponse précédente, comme JSch est encore utilisé dans de nombreux endroits, mais si vous avez besoin d'une bibliothèque mieux documenté, vous pouvez utiliser sshj. Un exemple dans la façon de l'utiliser pour faire sftp est:
SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
ssh.connect("host");
try {
ssh.authPassword("username", "password");
SFTPClient sftp = ssh.newSFTPClient();
try {
sftp.put(new FileSystemFile("/path/of/local/file"), "/path/of/ftp/file");
} finally {
sftp.close();
}
} finally {
ssh.disconnect();
}
En utilisant JSch (une lib ssh java, utilisé par Ant par exemple), vous pouvez faire quelque chose comme ça:
Session session = null;
Channel channel = null;
try {
JSch ssh = new JSch();
ssh.setKnownHosts("/path/of/known_hosts/file");
session = ssh.getSession("username", "host", 22);
session.setPassword("password");
session.connect();
channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
sftp.put("/path/of/local/file", "/path/of/ftp/file");
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
} finally {
if (channel != null) {
channel.disconnect();
}
if (session != null) {
session.disconnect();
}
}
Voici another link en utilisant JSch pour faire SFTP.
Vous pouvez utiliser JSch directement de cette façon, ou par le biais de Commons VFS, mais vous devrez alors avoir les deux communs vfs jar et jsch jar.
ftp sur un tunnel SSH? –
http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol –
Veuillez utiliser le terme «SFTP» si c'est ce que vous voulez dire. Entre les protocoles FTP, SFTP/SSH, FTPS et le routage FTP sur SSH, les acronymes deviennent ambigus. – prestomation