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