1创建用户组 sftp
groupadd sftp
2创建用户pdtest
useradd -G sftp -s /sbin/nologin pdtest
-s 禁止用户ssh登录
-G 加入sftp用户组
3创建密码
passwd --stdin pdtest <<< "Test@123"
4 修改ssh配置文件/etc/ssh/sshd_config如下
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key SyslogFacility AUTHPRIV AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials no UsePAM yes X11Forwarding yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS Subsystem sftp internal-sftp Match Group sftp chrootDirectory /home/pdtest ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
|
# 用chroot将用户的根目录指定到%h,%h代表用户home目录,这样用户 就只能在用户目录下活动。也可用%u,%u代表用户名
ChrootDirectory /data/sftp/%u
5将文件 /home/pdtest的拥有者设为 sftp 群体的使用者 root 避免登陆后的sftp用户有权限操作根目录
chown root:pdtest /home/pdtest
chmod 750 /home/pdtest
#如果上面2步不做的话 是可以直接上传到根目录的
创建上传文件的文件夹upload
mkdir /home/pdtest/upload
chown -R pdtest:root /home/pdtest/upload
systemctl restart sshd
setenforce 0
上传文件至根目录测试
上传到upload 则可以