使用 Java JSch 库连接 SFTP 服务器

13 2025年5月 | 阅读 3 分钟

JSch (Java Secure Channel) 是一个流行的Java库,允许开发人员通过SSH连接到远程服务器,并使用SFTP (Secure File Transfer Protocol)执行安全文件传输。它广泛用于自动化文件传输、远程命令执行和安全身份验证。

分步过程

步骤1:将JSch库添加到您的项目中

Java 不提供内置的SFTP连接支持,因此我们需要将JSch库包含到您的项目中。

如果我们使用Maven,请在pom.xml中添加此依赖项

步骤2:建立与SFTP服务器的连接

在执行文件操作之前,我们需要使用JSch建立SSH会话和SFTP通道。

步骤:

  1. 创建JSch实例:这是SSH通信的入口点。
  2. 创建会话:提供SFTP服务器主机名、端口、用户名和密码。
  3. 配置会话:禁用“StrictHostKeyChecking”以防止主机验证错误。
  4. 连接到SFTP服务器。
  5. 打开SFTP通道:文件传输操作需要。
  6. 使用完毕后关闭连接。

步骤3:将文件上传到SFTP服务器

连接到服务器后,我们可以使用ChannelSftp的put()方法上传文件。

步骤:

  1. 连接到服务器(与步骤2相同)。
  2. 指定本地文件路径(要上传的文件)。
  3. 指定远程目录(服务器上的目标文件夹)。
  4. 使用put()方法传输文件。
  5. 完成后关闭连接。

步骤4:从SFTP服务器下载文件

要下载文件,我们使用get()方法将文件从SFTP服务器传输到本地计算机。

步骤:

  1. 连接到SFTP服务器。
  2. 指定远程文件路径(要下载的文件)。
  3. 指定本地目录(保存文件的位置)。
  4. 使用get()方法下载文件。
  5. 关闭连接。

下一个主题Java ZipFile