确认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_users
ChrootDirectory /home/%u # 限制用户到家目录
ForceCommand internal-sftp # 强制使用SFTP
AllowTcpForwarding 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目录,且无法跳出。
查看状态:
日志配置及查看
/etc/ssh/sshd_config # Linux系统通用路径
vi /etc/ssh/sshd_config
LogLevel VERBOSE
systemctl restart sshd # 适用于systemd系统(如CentOS 7+/Ubuntu 16+)
查看日志:
/var/log/auth.log # Debian/Ubuntu系统
/var/log/secure # CentOS/RHEL系统

SFTP服务器搭建与配置指南
4760

被折叠的 条评论
为什么被折叠?



