说明
centos默认所有用户都可以进行sftp登录
sftp 用户名@ip
不过用户可以随意切换目录
ssh 版本在4.8之后可以通过配置令sftp只能在特定目录下操作,ssh -V 检查ssh版本
操作
- 创建sftp组
groupadd sftp
2.创建sftpuser用户,-g指定用户组 -M 不新建家目录,-s /bin/false 不能登录ssh
useradd -g sftp sftpuser
3.设置密码,这里因为是弱密码因此使用下面这个命令强制修改,正常是passwd 用户名
echo sftpuser | passwd --stdin sftpuser
4.新建目录,-p递归建立文件夹,下面可以不用-p
mkdir -p /sftp/sftpuser
5.建立文件存放目录
cd /sftp/sftpuser
mkdir file
chown sftpuser:sftp file #更改文件所属为 sftp组,sftpuser用户
chmod 750 file/ #修改文件夹权限为750
6.修改ssh配置文件
vim /etc/ssh/sshd_config
#注释Subsystem sftp /usr/libexec/openssh/sftp-server
#在文件末尾新增
Subsystem sftp internal-sftp
Match User sftpuser #这个是指定用户名
ChrootDirectory /sftp/sftpuser #这个是指定目录
AllowTcpForwarding yes
7.重启ssh服务
systemctl restart sshd.service
之后就可以使用sftp 用户@ip 进行登录了,并且只能在/sftp/sftpuser目录下操作,但是无法使用ssh进行登录,只能使用su命令(暂时没找到资料)
版权声明:本文为Myueye原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。