linux创建sftp

SFTP简介(百度百科):
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。

比起搭建FTP,搭建SFTP貌似简单很多~

环境说明:CentOS7

SFTP的搭建
准备工作:检查openssh版本
说明:本次使用系统自带的internal-sftp搭建sftp,因为需要用到chroot,所以openssh 版本不能低于4.8p1。

ssh -V

执行效果如图:
在这里插入图片描述

注:OpenSSH_4.8p1以后都支持chroot了。

第一步:创建用户分组sftp

groupadd sftp

执行效果如图:
在这里插入图片描述

第二步:添加用户tom至分组sftp

useradd -g sftp -s /sbin/nologin tom

执行效果如图:
在这里插入图片描述

注:-g后面接组;-s指定用户登入后所使用的shell,默认值为/bin/bash。

注:【/bin/bash】指:用户即能使用账号密码连接sftp,又能使用账号密码登录该Linux服务器;
【/sbin/nologin】指:用户只能使用账号密码连接sftp,不能使用账号密码登录该Linux服务器;对于FTP、
SFTP、SMTP等程序级服务,我们一般都设置为【/sbin/nologin】。

第三步:修改tom用户的密码

passwd tom

执行效果如图:
在这里插入图片描述

注:本人的密码设置的是【tom123】。

第四步:创建一个目录,来专门存放sftp相关文件

mkdir /sftp

执行效果如图:
在这里插入图片描述

注:推荐从“/”目录下创建新的文件夹,方便后面赋予权限。

第五步:在第四步创建的目录下,再创建一个与用户名同名的文件夹

cd /sftp
mkdir tom

执行效果如图:
在这里插入图片描述

第六步:修改sshd_config的配置文件
把原来的sshd_config配置文件里的subsystem行注释掉:

vim /etc/ssh/sshd_config

选择编辑
输入I(insert)进入添加

I

执行效果如图:
在这里插入图片描述

在sshd_config文件最后添加:

Subsystem sftp internal-sftp

Match Group sftp

ChrootDirectory /sftp/%u

ForceCommand internal-sftp

AllowTcpForwarding no

X11Forwarding no

执行效果如图:
在这里插入图片描述

相关参数说明:
Subsystem sftp internal-sftp:指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp:用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割。
注:当然也可以匹配用户,如:【Match User mysftp】,多个用户名
之间也是用逗号分割。
ChrootDirectory /sftp/%u:用chroot将用户的根目录指定到/sftp/%u,%u代表用户名,这
样用户就只能在/sftp/%u下活动。
ForceCommand internal-sftp:指定sftp命令

Esc 输入

:wq

保存编码

第七步:设定Chroot目录权限

chown root:sftp /sftp

chown root:sftp /sftp/tom

chmod 755 /sftp

chmod 755 /sftp/tom

执行效果如图:
在这里插入图片描述

注:目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者,都只能是root,群组可以
是第一步创建的组,这里是sftp
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止,目录所属的群组都不可以具有写的权限。

注:读(r,权限值为4)、写(w,权限值为2)、执行(x,权限值为1)。

第八步:在/sftp/tom目录下,创建一个文件夹files,并设置该文件夹的拥有者
为对应的用户,并设置该文件夹的拥有者有7的权限。这样该用户可
以在files目录下进行任何操作(上传、下载、删除、创建等操作)
创建文件夹:

mkdir files

执行效果如图:
在这里插入图片描述

设置权限:

chown tom /sftp/tom/files

chmod 755 /sftp/tom/files

执行效果如图:
在这里插入图片描述

说明:之所以这么做,是因为用户tom的根目录为/sftp/tom/,但是用户tom对文件夹/sftp/tom/没有7的权限,只有
5的权限(因为用户文件夹/sftp/tom/所属组为sftp,而tom有时组sftp中的一员,所以tom对文件夹/sftp/tom/有
5的权限)。所以用户tom不能再根目录下写入,因此我们还需要创建一个文件夹给用户tom,让用户tom有该
文件夹全部的权限。

第九步:重启sshd配置

systemctl restart sshd

执行效果如图:
在这里插入图片描述

第十步:连接SFTP,验证一下

sftp 用户名@ip地址

执行效果如图:
在这里插入图片描述

由此可见:SFTP创建成功!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值