1.需求
搭建多账号SFTP,不同的用户只能够查看自己所属的目录 禁止SFTP账号通过SSH连接 SFTP 用户demo1、demo2,所属目录:/data/sftp/demo1、/data/sftp/demo2
2.操作步骤创建目录mkdir /data/sftp/{demo1,demo2} -p
创建用户组sftpgroupadd sftp 创建用户demo1、demo2
创建用户demo1、demo2
useradd -G sftp -d /data/sftp/demo1 -m -s /sbin/nologin demo1 useradd -G sftp -d /data/sftp/demo2 -m -s /sbin/nologin demo2
-G sftp :加入sftp用户组 -s /sbin/nologin:禁止用户ssh登录 -d /data/sftp/demo1:指定用户的根目录
修改密码
passwd demo1 passwd demo2
修改配置文件sshd_config
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori.20190531 vim /etc/ssh/sshd_config #下面这行注释掉#Subsystem sftp /usr/libexec/openssh/sftp-server##后面加入 Subsystem sftp internal-sftp #注意,以下要 放在 本文件的最后行,否则 root用户无法登陆 Match Group sftp X11Forwarding no AllowTcpForwarding no ChrootDirectory %h ForceCommand internal-sftp
说明 : Match Group sftp 匹配sftp用户组中的用户 ChrootDirectory %h 只能访问默认的用户目录(自己的目录),例如 /data/sftp/demo1
重启ssh服务
systemctl restart sshd.service
设置目录权限
chown root:sftp /data/sftp/demo1/ chown root:sftp /data/sftp/demo2/ chmod 755 /data/sftp/demo1 chmod 755 /data/sftp/demo2 #设置用户可以上传的目录upload mkdir /data/sftp/demo1/upload mkdir /data/sftp/demo2/upload chown -R demo1:sftp /data/sftp/demo1/upload/ chown -R demo2:sftp /data/sftp/demo2/upload/
关闭selinuxvim /etc/selinux/config 设置: SELINUX=disable
3.测试连接
测试SFTP功能
#登录sftp sftp demo1@192.168.47.111 #进入upload目录 cd upload #上传文件 put /root/Nginx-1.15.12.tar.gz #查看目录下的文件 ls #下载文件 get nginx-1.15.12.tar.gz