SFTP搭建小知识
确认OpenSSH服务已安装
SFTP功能基于OpenSSH服务,通常CentOS 7默认已安装。可通过以下命令检查:
rpm -qa | grep openssh-server
如果未安装,使用以下命令安装:
yum install -y openssh-server
创建SFTP专用用户组和用户
创建用户组(可选,便于权限管理):
groupadd sftp_users
创建用户并加入组(示例用户名为sftpuser):
useradd -G sftp_users -s /sbin/nologin sftpuser # 禁止SSH登录,仅允许SFTP
passwd sftpuser # 设置密码
配置SFTP子系统
编辑SSH配置文件 /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
修改或添加以下内容:
Subsystem sftp internal-sftp # 启用内部SFTP子系统# 在文件末尾添加用户限制(按需选择一种方式)
# 方式1:限制特定用户组(推荐)
Match Group sftp_usersChrootDirectory /home/%u # 限制用户到家目录ForceCommand internal-sftp # 强制使用SFTPAllowTcpForwarding no # 禁止端口转发X11Forwarding no # 禁止X11转发# 方式2:限制单个用户(示例)
# Match User sftpuser
# ChrootDirectory /home/sftpuser
# ForceCommand internal-sftp
设置Chroot目录权限
确保用户家目录权限正确(Chroot目录必须属于root,且权限为755)
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
创建用户可写的子目录(如/home/sftpuser/files):
mkdir /home/sftpuser/files
chown sftpuser:sftp_users /home/sftpuser/files
chmod 750 /home/sftpuser/files
重启SSH服务
systemctl restart sshd
输入密码后,应只能访问/home/sftpuser/files目录,且无法跳出。
查看状态: