Tag: sftp

如何将文件从目录A移动到远程服务器中的目录B?

我正在使用JSch连接到由GWT制作的网站中的SFTP。 我读过sftpChannel.get() , sftpChannel.rename() , sftpChannel.rm()一个小例子。 但我没有找到将文件从远程服务器复制到远程服务器b目录的解决方案。 例如,我想将文件从/appl/user/home/test/temp复制到/appl/user/home/test/ 。 Filename = abc.jpg 。 我在这里惊呆了几个小时,因为网络的大多数解决方案是从远程服务器到本地的文件,或者从本地上传到远程服务器的文件。 String existingfile = “abc.jpg”; String newfile = “123.jpg”; FileDirectory = “/appl/user/home/test/”; sftp.cd(FileDirectory+”temp/”); sftp.rename(newfile, FileDirectory+newfile); 比方说, abc.jpg存在于/appl/user/home/test/ 我在/appl/user/home/test/temp/上传了一个123.jpg 。 现在,我想将123.jpg移动到/appl/user/home/test/并删除/appl/user/home/test/中的abc.jpg 。 我该怎么办?

JSch从字符串中添加私钥

我将SFTP的密钥对文件的内容作为字符串。 我需要使用JSch添加内容,但addIdentity只接受文件路径。 无论如何我能做到吗? 我看到KeyPair类有一个方法 – KeyPair load(JSch jsch, byte[] bytes, byte[] bytes1) 我不确定这是做什么的。

使用Java中的ssh2连接到由RSA SecurID保护的Linux系统

我想创建一个从Windows系统到Linux机器的连接,它使用RSA令牌密码进行身份validation,我想运行shell命令并从Java代码获取输出。 使用putty登录Linux系统时,请执行以下步骤: 输入IP和端口并连接 在PuTTY终端输入用户名,询问“登录为:” 输入PASSCODE,我们输入RSA SecurID 我已经尝试使用Jsch包连接,但它没有连接。 我还尝试了一个jcabi-ssh的包装器jcabi-ssh ( http://ssh.jcabi.com/ )。 它们似乎都不适合我。 编辑:我使用Jsch包使用以下代码 String host = “xxx”; String user = “xxx”; String password; Scanner scanner = new Scanner (System.in); System.out.println(“Enter rsa token: “); password = scanner.nextLine(); Session session = jsch.getSession(user, host, 2222); session.setPassword(password); session.connect(); 之后我收到以下错误: com.jcraft.jsch.JSchException: UnknownHostKey: myservername. RSA key fingerprint is ba:2b:70:2f:4f:fa:f6:20:31:56:e0:e8:8b:16:46:c9 我找到了一个解决方案,有人说这条代码将StrictHostKeyChecking设置为“no”: java.util.Properties […]

使用JSch连接SFTP时如何选择网络接口

我正面临着由JSch创建到远程SFTP服务器的会话的问题: 我用来通过shell连接sftp服务器的命令是: sftp -o BindAddress=SOME_IP_ADDRRESS myUserName@HOST_IP_ADDR 并且它的工作正常,但是当我尝试Java(JSch)时,我得到一个超时exception。 Java代码是 /* KEY_FILE_NAME = is a file with rsa public key */ ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource(KEY_FILE_NAME).getFile()); JSch jsch = new JSch(); jsch.addIdentity(file.getAbsolutePath()); Properties hash = new Properties(); hash.put(“StrictHostKeyChecking”, “no”); logger.debug(“SSh Server Host name >>” + SSH_SERVER_HOST_NAME + ” || User Name >>” + […]

使用JSch拒绝权限

我正在尝试使用JSch从sftp服务器检索一些文件,但我收到以下错误。 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 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 API通过sftp连接到远程服务器。 我需要将远程服务器中存在的目录从位置A移动到位置B.看起来方法channelsftp.put(src,dest)只允许移动文件而不是目录。 有人可以解释一下如何做到这一点?

java.io.IOException – IO流读取结束

代码似乎在session.connect中断。 com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read 堆栈跟踪 com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read at com.jcraft.jsch.Session.connect(Session.java:534) at com.jcraft.jsch.Session.connect(Session.java:162) at session.connect in uploadFile(ftpService.java:280) 码 try { JSch jsch = new JSch(); Session session = null; session = jsch.getSession(ftpUserName, ftpServer, 22); session.setClientVersion(“StrictHostKeyChecking”); //session.setConfig(“StrictHostKeyChecking”, “no”); session.setPassword(ftpPassword); session.connect(); Channel channel = session.openChannel(“sftp”); channel.connect(); ChannelSftp sftpChannel […]

如何从SFTP服务器获取文件列表?

我有一个问题,希望得到一个解决方案。 我也写了一些代码,但需要进行一些修改。 问题:我需要连接的SFTP服务器(出于隐私目的,我将提供虚拟凭据)。 服务器名称:服务器名称端口:22用户名:用户名密码:密码 当我连接到服务器时,它会自动将我放入“/ FGV”目录中。 在这个目录里面是其他几个文件夹。 我需要从“/ FGV / US / BS /”目录中获取xml消息列表,并将它们放在LIST(文件forms的文件)中。 在列表中,我需要有文件目录,文件名和文件正文。 我正在考虑创建一个对象并将此信息放在那里并创建该对象的List。 我当前的代码创建一个连接并仅下载一个xml文件。 如果有两个xml文件,那么我本地计算机中的文件没有任何内容。 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class SFTPinJava { public SFTPinJava() { } public static void main(String[] args) { String SFTPHOST = “server-name”; int […]

JSch get()因NullPointerException而失败

我有一个Jax-RS服务器,它应该保存一个可以通过ssh访问的文件列表,然后我可以通过HTTP下载或流式传输。 我一直在尝试用JSch的SFTP通道读取文件,但我一直收到NullPointerException 。 这是我写的MessageBodyWriter : @Provider @Produces(“video/*”) public class MediaBodyWriter implements MessageBodyWriter { @Override public long getSize(MediaFile mFile, Class arg1, Type arg2, Annotation[] arg3, MediaType arg4) { return mFile.getFileSize(); } @Override public boolean isWriteable(Class type, Type arg1, Annotation[] arg2, MediaType arg3) { return type.equals(MediaFile.class); } @Override public void writeTo(MediaFile mFile, Class type, Type genericType, Annotation[] […]

SFTP读取目录中的所有文件

我使用SFTP com.jcraft.jsch创建了一个成功的连接 我还在HostDir下创建了一个目录文件夹,如: channelSftp.mkdir(“sftp.test”); 现在我想读取主机目录下的所有文件/文件夹名称,我没有看到任何适当的方法或示例。 谢谢