Java实现SFTP传输

本文介绍了SFTP(SSHFileTransferProtocol)的概念,它是基于SSH的安全文件传输协议,提供加密数据传输。详细讲解了SFTP的验证方式、文件传输过程,并给出了使用Java通过JSch库实现SFTP连接和文件上传的步骤。
摘要由CSDN通过智能技术生成

一、SFTP是什么?

SFTP(SSH File Transfer Protocol)是一种基于SSH(安全外壳)的安全的文件传输协议,使用SFTP协议可以在文件传输过程中提供一种安全的网络的加密算法,从而保证数据的安全传输

SFTP在Linux操作系统中,默认的端口是22,传输提供了密码和密钥验证机制,可以有效防止传输过程的威胁和公技

1.1 SFTP验证连接方式

  • 账户密码验证:使用账户ID和密码进行验证,凭据验证过程中是加密的。

  • SSH密钥验证:通过SSH密码进行验证。

  • 账户密码+SSH密钥混合验证:需要满足两种验证,才可以进行连接

1.2 SFTP文件传输过程

在这里插入图片描述
原文链接:什么是SFTP

二、实现步骤

在这里插入图片描述

1、建立sftp连接

   public void initSession(String sHost, int iPort, String sUserName, String sPassword) throws JSchException {

            // JSch库来建立与SFTP服务器的连接
            JSch jSch = new JSch();
            this.session = jSch.getSession(sUserName,sHost,iPort);//getSession()建立与sftp服务器的会话
            this.session.setPassword(sPassword);    
            this.session.connect();// 连接sftp服务器

    }

2、设置传输参数

    public void initChannelSftp() throws JSchException{
        // 打开一个sftp通道,并将其转化为ChannelSftp对象
        this.sftp = (ChannelSftp) this.session.openChannel("sftp");
        this.session.connect();
    }

3、打开本地文件

// 将要传输的文件打开为输入流 
    String localFilePath ="文件路径";
    InputStream inputStream = new FileInputStream(localFilePath);
    }

4、创建远程文件

// 在sftp服务器上创建远程文件
String remoteFilePath = "";
sftp.cd("")// 远程文件所在根目录
sftp.put(localFilePath, remoteFilePath)

5、上传文件

// 将本地文件写入到远程文件中
sftp.put(localFilePath, remoteFilePath)

6、关闭文件

inputStream.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值