在 CentOS 上添加 SFTP 用户(通常限制只能 SFTP,不能 SSH 登录)一般步骤如下:
useradd -m -s /sbin/nologin sftpuser
passwd sftpuser
说明:
-m:创建家目录-s /sbin/nologin:禁止 SSH 登录(仅 SFTP)为了安全,SFTP 根目录不能由用户自己拥有写权限。
mkdir -p /data/sftp/sftpuser
chown root:root /data/sftp/sftpuser
chmod 755 /data/sftp/sftpuser
# 用户可写目录
mkdir /data/sftp/sftpuser/upload
chown sftpuser:sftpuser /data/sftp/sftpuser/upload
编辑 SSH 配置文件:
vi /etc/ssh/sshd_config
在文件末尾添加:
Match User sftpuser
ChrootDirectory /data/sftp/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
如果有多个用户,可以用组方式:
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
(需 groupadd sftp 并将用户加入)
systemctl restart sshd
sftp sftpuser@服务器IP
broken pipeChrootDirectory 必须是 root 拥有755把 shell 改成:
usermod -s /bin/bash sftpuser
groupadd sftp
useradd -g sftp -s /sbin/nologin user1
如果你需要 指定端口 / 限制 IP / 使用密钥登录,也可以告诉我,我可以给你更完整的配置。