Java 尝试通过SSH执行FTP隧道

Java 尝试通过SSH执行FTP隧道,java,ftp,network-programming,ftp-client,apache-commons-net,Java,Ftp,Network Programming,Ftp Client,Apache Commons Net,我正在编写一个JAVA程序,用于在某些情况下需要将文件从正在运行的机器传输到另一台机器的工作。要求是,可以将其配置为通过FTP、SFTP或认证安全但数据未加密传输的连接进行传输 使用第三方JAVA库实现前两个应该不会太糟糕。我面临的问题是第三种选择。似乎唯一的方法是通过SSH隧道传输FTP 由于我在这件事上相当缺乏经验,不知是否有人有任何有用的建议。这可以使用可靠的JAVA库(首选)或其他工具来完成,我只是将其作为程序中的一个单独进程来调用 谢谢您可以使用它上传和下载文件。有和。唯一的先决条件是

我正在编写一个JAVA程序,用于在某些情况下需要将文件从正在运行的机器传输到另一台机器的工作。要求是,可以将其配置为通过FTP、SFTP或认证安全但数据未加密传输的连接进行传输

使用第三方JAVA库实现前两个应该不会太糟糕。我面临的问题是第三种选择。似乎唯一的方法是通过SSH隧道传输FTP

由于我在这件事上相当缺乏经验,不知是否有人有任何有用的建议。这可以使用可靠的JAVA库(首选)或其他工具来完成,我只是将其作为程序中的一个单独进程来调用

谢谢

您可以使用它上传和下载文件。有和。唯一的先决条件是远程系统必须运行FTP服务器。您不必调用某些外部进程。只需让您自己的应用程序完成这项工作。记住要小心使用防火墙


使用FTPS时,只能保证对控制会话进行加密。数据通过常规FTP传输。是否加密取决于您。您可以使用PROT和CDC命令来控制加密

谢谢你的回复。我已经研究了ApacheCommons,你可能是对的,它可以做我想做的事情。然而,它似乎只支持FTP和FTPS,正如您所提到的。FTP完全未加密,而FTPS具有加密的身份验证和数据传输。我需要的是一个中间解决方案,其中身份验证是加密的,但在这之后,该会话的实际数据传输都是未加密的。我想知道ApacheCommons本身是否提供了这种功能,或者我是否需要做一些额外的事情或其他事情来实现这一点。