要自定义 CentOS 上的 SFTP 配置,您需要编辑 OpenSSH 服务器的配置文件。以下是详细步骤:
备份原始配置文件: 在进行任何更改之前,建议先备份原始的 SSH 配置文件。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
编辑 SSH 配置文件:
使用您喜欢的文本编辑器(如 vi
、nano
等)打开 /etc/ssh/sshd_config
文件。
sudo vi /etc/ssh/sshd_config
配置 SFTP 子系统: 找到或添加以下行来配置 SFTP 子系统:
Subsystem sftp internal-sftp
限制用户访问: 如果您希望限制某些用户只能使用 SFTP 而不能使用 SSH,可以添加以下配置:
Match User <username>
ForceCommand internal-sftp
ChrootDirectory %h
AllowTcpForwarding no
X11Forwarding no
将 <username>
替换为您要限制的用户名。
设置 chroot 目录:
确保 chroot 目录存在并且具有正确的权限。例如,如果您希望将用户 chroot 到 /home/<username>
,请确保该目录存在并且属于 root 用户:
sudo mkdir -p /home/<username>
sudo chown root:root /home/<username>
sudo chmod 755 /home/<username>
创建用户数据目录: 在 chroot 目录中创建一个用户数据目录,并设置正确的权限:
sudo mkdir -p /home/<username>/uploads
sudo chown <username>:<username> /home/<username>/uploads
重启 SSH 服务: 保存并关闭配置文件后,重启 SSH 服务以应用更改:
sudo systemctl restart sshd
测试 SFTP 连接: 使用 SFTP 客户端连接到服务器,确保配置生效并且用户只能访问指定的目录。
sftp <username>@<server_ip>
通过以上步骤,您可以自定义 CentOS 上的 SFTP 配置,以满足您的需求。