博主在之前有自己搭建自己的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

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 向服务器放一个文件
Comments NOTHING