Centos7 SFTP服务器搭建方法记录

最后更新于 2021-12-28 476 次阅读


博主在之前有自己搭建自己的FTP服务器,但是在博主想在网管系统上使用网管工具时发现,网管工具只支持sftp服务器的使用,故博主又自行搭建了sftp服务器。

在搭建之前,博主经过了查询资料才发现,其实sftp服务器是基于SSH协议之上发展的协议,其实也可以说是SSH协议中自带的协议,默认使用的也是22端口,直接设置好用户和目录权限就可以使用了,都不需要另外安装vsftpd这些软件,所以感觉还是挺方便。

这两者的协议的差别感觉就是,ftp效率更高,但是不安全。sftp效率低,但是十分有保障。

接下来就是Sftp服务器搭建的方法记录,本文的操作指令摘自CSDN

1.创建用户组和用户

(1)创建用户组

groupadd zhongxing 

(2)创建用户


useradd -g zhongxing -s /sbin/nologin zewang
passwd zewang 

2.设置用户家目录权限


chown root:zhongxing /home/zewang #文件夹所有者必须为root,用户组可以不是root

chmod -R 755 /home/zewang  #权限不能超过755,否则会导致登录报错,可以是755

mkdir /home/zewang/upload

chown zewang:zhongxing /home/zewang/upload # 新建一个目录供sftp用户user1上传文件,这个目录所有者为user1所有组为sftp,所有者有写入权限所有组无写入权限

chmod 755 /home/zewang/upload

另外需要注意的是:ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。注意以下两点原则:

1)目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。

2)目录开始一直往上到系统根目录为止都不可以具有群组写入权限

3.编辑SSH文件

vim /etc/ssh/sshd_config

注释掉#Subsystem sftp /usr/libexec/openssh/sftp-server

补充如下内容:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

#重启ssh服务
systemctl restart sshd
sshd_config文件添加内容

4.从别的服务器远程连接该服务器


三种方式:
sftp zewang@IP地址
​
sftp -P 10837 zewang@119.29.95.246 #推荐
​
​
sftp -oPort=10837 zewang@119.29.95.246

5.常用操作

put -r  #上传文件

get -r #下载文件

#(1)远程主机操作

cd 进入某个目录

ls 查看文件列表

pwd 查看当前目录

get 获取某个文件

#(2)本地主机操作

lcd 进入某个目录

lls 查看文件列表

lpwd 查看当前目录

lget 获取某个文件

put 向服务器放一个文件