环境:
OS:Centos 7
1.安装sftp
[root@localhost /]# yum install vsftpd -y
2.启动并设置开机自启
[root@localhost ~]# systemctl start vsftpd //启动服务器
[root@localhost ~]# systemctl enable vsftpd //开机自启服务
3.Linux客户端测试服务,安装客户端工具
[root@dsc2 ios]#yum install ftp -y
4.创建相应目录和用户
mkdir -p /opt/ftpbak ##sftp的数据目录
chmod 755 -R /opt/ftpbak ##给ftp用户进入目录
chown root:root -R /opt/ftpbak ##需要使用chroot
groupadd sftp ##配置sftp群组
useradd -d /opt/ftpbak/ckbackup -m -g sftp -s /sbin/nologin ckbackup ##创建用户并加入sftp组,指定家目录和不允许正常登录
echo '123456' | passwd --stdin ckbackup ##为ckbackup用户设置密码123456自行修改
5.修改配置sshd_config
vi /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server #这行注释掉
GSSAPIAuthentication no #更改为no
UseDNS no #更改为no
X11Forwarding no #更改为no
#直接在文件最后面复制进去-> 添加
Subsystem sftp internal-sftp ##sftp服务使用ssh服务提供的
ForceCommand internal-sftp ##如果ssh 登录不了,请注释它
Match Group sftp ##匹配sftp组
ChrootDirectory /opt/ftpbak/%u ##限制用户在自己家目录(取消,否则连接不上:Couldn't read packet: Connection reset by peer)
6.重启sshd服务
systemctl restart sshd
7.对用户目录进行授权(没有操作)
这样更加安全,使得用户只对某个目录进行读写而不污染其他目录
mkdir /opt/ftpbak/ckbackup/upload -p
chown root:root /opt/ftpbak/ckbackup
chmod 755 /opt/ftpbak/ckbackup
chown ckbackup:sftp /opt/ftpbak/ckbackup/upload -R #只允许自己操作upload目录
8.测试
sftp [email protected]
put /tmp/aa.txt
文件会上传到如下目录
sftp> pwd
Remote working directory: /opt/ftpbak/ckbackup
sftp> ls
aa.txt