Я пытаюсь получить некоторые файлы с сервера sftp с помощью JSch, но я получаю следующую ошибку.Разрешение отклонено с использованием JSch
3: Permission denied
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)
at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:2340)
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:342)
at com.company.common.sftp.impl.managedFile.moveFiles(managedFile.java:712)
Вот код:
private List<String> moveFiles(String prefixFileName, String path) {
Session session = getSession();
Channel channel = connect(session);
ChannelSftp channelSftp = null;
try {
channelSftp = (ChannelSftp)channel;
channelSftp.cd(_workingDir);
...
}
...
finally {
channel.disconnect();
session.disconnect();
}
}
public Session getSession() {
Session session = null;
JSch jsch = new JSch();
session = jsch.getSession(_user,_server,_port);
session.setPassword(_password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", _strictHostKeyChecking);
session.setConfig(config);
session.connect();
return session;
}
public static Channel connect(Session session) {
Channel channel = null;
channel = session.openChannel("sftp");
channel.connect();
return channel;
}
_workingDir
это свойство со следующим значением: /user_files
. Обе папки (источник и получатель) находятся на сервере Windows, и все привилегии были предоставлены любому пользователю. Но по какой-то причине он не позволяет мне изменять текущий каталог на исходном (удаленном) сервере.
Любая идея?
UPDATE: Сервер Sftp является freeFTPd и с помощью клиента SFTP (например, FileZilla), я могу перемещать файлы без проблем
Вы можете добавить себе скриншот страницы с файлом FileZilla, где есть каталог '/ user_files'? –