在CentOS系统上配置SFTP的步骤如下:
-
检查SSH版本: 使用命令
ssh -V
来查看当前安装的SSH版本,确保版本大于4.8p1,因为低于这个版本可能需要升级。 -
创建SFTP用户组: 创建一个新的用户组,例如
sftp
,用于管理SFTP用户。 -
创建SFTP用户: 创建一个新的用户,并将其添加到
sftp
组中。例如,创建用户mysftp
:sudo groupadd sftp sudo useradd -g sftp -s /sbin/nologin mysftp sudo passwd mysftp
设置用户密码。
-
配置用户目录: 为SFTP用户创建一个目录,并设置适当的权限。例如,为用户
mysftp
创建目录/data/sftp/mysftp
:sudo mkdir -p /data/sftp/mysftp sudo chown mysftp:sftp /data/sftp/mysftp sudo chmod 755 /data/sftp/mysftp
-
修改SSH配置文件: 编辑
/etc/ssh/sshd_config
文件,确保以下配置项正确设置:Subsystem sftp /usr/libexec/openssh/sftp-server Match group sftp ChrootDirectory /data/sftp/\u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
如果需要匹配多个组,可以使用逗号分隔多个组名。
-
设置chroot目录权限: 确保chroot目录的权限设置正确。例如,为用户
mysftp
设置/data/sftp/mysftp
目录的权限:sudo chown root:sftp /data/sftp/mysftp sudo chmod 755 /data/sftp/mysftp
-
创建用户可写入的目录: 在chroot目录下创建一个用户可以写入的目录,例如:
sudo mkdir /data/sftp/mysftp/upload sudo chown mysftp:sftp /data/sftp/mysftp/upload sudo chmod 755 /data/sftp/mysftp/upload
-
重启SSH服务: 保存所有配置更改并重启SSH服务以应用更改:
sudo systemctl restart sshd
-
验证SFTP访问: 使用SFTP客户端连接到服务器,验证用户是否可以成功登录并进行文件传输。