centos7 配置 sftp 服务器并通过 java 上传文件

文章详细描述了如何在Linux服务器上配置SFTP服务,包括创建用户组和用户,设定用户目录,修改SSHD配置以限制用户访问权限,以及使用内部SFTP子系统。同时,文章还提供了Java代码示例,展示如何通过JSch库进行文件上传到SFTP服务器的upload目录,并验证了配置的安全性。
摘要由CSDN通过智能技术生成

虚拟机配置

1、创建sftp用户组

groupadd sftp

2、添加用户

useradd -g sftp mysftp

3、设置用户密码

passwd mysftp

4、创建文件根目录

mkdir /app/data

5、将该目录设置到用户上

usermod -d /app/data mysftp

6、修改配置文件

 vim /etc/ssh/sshd_config

7、找到 Subsystem ,将之前的配置注释掉,增加新的配置

#注释掉下面一行,改用自定义的
#Subsystem      sftp    /usr/libexec/openssh/sftp-server

Subsystem sftp internal-sftp #这行指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp #这行用来匹配用户组
ChrootDirectory /app/data  #用chroot将用户的根目录指定到/app/data ,这样用户就只能在/app/data 下活动
AllowTcpForwarding no
ForceCommand internal-sftp #指定sftp命令

8、创建属于该用户的访问目录并设置用户组

mkdir /app/data/upload
chown -R mysftp:sftp /app/data/upload/

mkdir /app/data/download
chown -R mysftp:sftp /app/data/download/

9、重启sshd服务

service sshd restart

10、通过任意的sftp连接工具测试连接

我这边使用的是 WinSCP

连接后能看到下图说明服务正常(无法跳转到 /app/data 以外的路径才对,保护资源)

在这里插入图片描述

java 代码

1、测试代码

public static void main(String[] args) {
   
    JSch jSch = new JSch();
    Session session = null;
    Channel channel 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值