Linux搭建sftp(亲测有效)

sftp是SSH File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。

1:创建用户组、用户、设置密码

groupadd sftp
useradd -g sftp -s /sbin/nologin -M sftp1
passwd sftp1

2:创建sftp根目录(root用户下创建)

mkdir /home/sftp/uploads

3:编辑sftp配置文件

vim /etc/ssh/sshd_config

末尾添加(注意,添加部分一定要放在末尾,否则重启sshd报错):

Subsystem sftp internal-sftp ##指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp ##匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /home/sftp/uploads/ ##sftp主目录指定到/home/sftp/uploads/
ForceCommand internal-sftp ##指定sftp命令
AllowTcpForwarding no ##用户不能使用端口转发
X11Forwarding no ##用户不能使用端口转发

在这里插入图片描述

可以通过sshd -t测试配置文件是否正确,无任何输入则正确

4:设置主目录权限

chown root:sftp /home/sftp/uploads/   //文件夹所有者必须为root,用户组可以不是root
chmod 744 /home/sftp //权限不能超过755,否则会导致登录报错,可以是755

5:重启sshd

systemctl restart sshd

6:登录sftp(linux/Windows)

sftp sftp1@ip地址

此时,登录进来的用户只有查看主目录及其子目录的权限,不能删除、上传、下载和重命名文件。

7:为sftp1创建文件夹

mkdir /home/sftp/uploads/test1
chown sftp1:sftp /home/sftp/uploads/test1
chmod 744 /home/sftp/uploads/test1

8:重启sshd
9:登录进入sshd执行ls命令查看当前目录下的文件,可以看到一个test1文件夹,cd进入test1文件夹才可以上传本地文件到test1文件夹下或者从test1文件夹下载文件到本地。(忽略test2文件夹,是我为sftp2用户建立的)
在这里插入图片描述
将~目录下的文件a删除到test1文件中:
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值