在CentOS上启用SFTP(SSH File Transfer Protocol)通常涉及几个步骤,包括配置SSH服务器以允许SFTP连接,以及可能需要配置防火墙规则。以下是在CentOS上启用SFTP的基本步骤:
-
安装SSH服务器(如果尚未安装): CentOS通常预装了OpenSSH服务器。如果没有安装,可以使用以下命令安装:
sudo yum install openssh-server
-
启动并启用SSH服务: 启动SSH服务并设置为开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
-
配置SSH以允许SFTP: 编辑SSH配置文件
/etc/ssh/sshd_config
来确保SFTP子系统被启用,并进行任何必要的配置。sudo vi /etc/ssh/sshd_config
在文件中找到以下行(如果存在)并确保它们没有被注释掉(没有行首的
#
):Subsystem sftp /usr/libexec/openssh/sftp-server
如果这一行不存在,你可以添加它。此外,你还可以添加或修改以下行来限制用户只能使用SFTP:
Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
这里,
sftpusers
是一个用户组,你可能需要创建它并将希望允许SFTP访问的用户添加到这个组中。 -
创建SFTP用户组并添加用户: 创建一个新组(如果尚未存在)并将用户添加到该组:
sudo groupadd sftpusers sudo usermod -aG sftpusers username
将
username
替换为你想要允许SFTP访问的用户名。 -
配置防火墙: 如果你的CentOS服务器运行着防火墙,确保开放SSH端口(默认是22):
sudo firewall-cmd --permanent --zone=public --add-service=ssh sudo firewall-cmd --reload
-
重启SSH服务: 为了使更改生效,重启SSH服务:
sudo systemctl restart sshd
-
测试SFTP连接: 使用SFTP客户端(如FileZilla或其他支持SFTP的FTP客户端)尝试连接到你的服务器,使用你在步骤4中设置的用户名和密码。
请注意,这些步骤可能会根据你的具体需求和CentOS版本有所不同。如果你使用的是SELinux,可能还需要调整相关的策略以允许SFTP连接。此外,确保你的SSH密钥和密码安全,以防止未授权访问。