在CentOS上配置SFTP(SSH File Transfer Protocol)通常涉及以下几个步骤:
-
安装OpenSSH服务器: 如果你的CentOS系统还没有安装OpenSSH服务器,你可以使用以下命令来安装它:
sudo yum install openssh-server
-
启动并启用SSH服务: 安装完成后,启动SSH服务并设置为开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
-
配置SSH以允许SFTP: OpenSSH默认已经支持SFTP,所以通常不需要额外配置。但是,如果你想要限制用户只能通过SFTP访问,而不是SSH shell,你可以编辑
/etc/ssh/sshd_config
文件:sudo vi /etc/ssh/sshd_config
在文件中找到或添加以下行:
Subsystem sftp /usr/libexec/openssh/sftp-server
确保没有其他的Subsystem配置覆盖了这个设置。
-
限制用户访问: 如果你想要限制特定用户只能使用SFTP,可以在
sshd_config
文件中使用Match
指令:Match User
ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no 将
替换为你想要限制的用户名。ChrootDirectory
指令将用户的根目录更改为他们的主目录,这样可以防止他们访问系统中的其他文件。ForceCommand internal-sftp
强制用户使用SFTP。AllowTcpForwarding
和X11Forwarding
设置为no
可以进一步提高安全性。 -
重启SSH服务: 为了使更改生效,你需要重启SSH服务:
sudo systemctl restart sshd
-
测试SFTP连接: 使用SFTP客户端(如FileZilla或其他支持SFTP的FTP客户端)来测试你的配置。确保使用正确的用户名和密码连接到服务器。
-
防火墙设置: 如果你的CentOS服务器运行着防火墙,确保开放了SSH端口(默认是22):
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
请注意,这些步骤假设你有一个基本的CentOS系统,并且你有root权限或者sudo权限来执行这些命令。如果你在进行这些操作时遇到任何问题,请检查系统日志(通常在/var/log/
目录下)以获取更多信息。