在CentOS上配置SFTP(SSH File Transfer Protocol)通常需要以下依赖包:
OpenSSH-server:这是SSH服务器的核心组件,包括SFTP功能。
sudo yum install openssh-server
OpenSSH-clients:这是SSH客户端工具,用于连接到SFTP服务器。
sudo yum install openssh-clients
PAM(Pluggable Authentication Modules):用于身份验证和授权。虽然不是直接与SFTP相关,但它是SSH和SFTP身份验证的基础。
sudo yum install pam
SELinux(如果启用):SELinux是CentOS的安全模块,可能需要配置以允许SFTP连接。
sudo yum install policycoreutils-python
Firewall(如果需要):如果你启用了防火墙,确保允许SFTP端口(默认是22)。
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
启动并启用SSH服务:
sudo systemctl start sshd
sudo systemctl enable sshd
配置SFTP:
编辑/etc/ssh/sshd_config文件,找到或添加以下行来配置SFTP:
Subsystem sftp /usr/libexec/openssh/sftp-server
这行代码告诉SSH服务器使用sftp-server作为SFTP子系统。
重启SSH服务:
sudo systemctl restart sshd
配置用户权限:
确保你想要允许SFTP访问的用户有正确的权限。通常,这些用户应该属于wheel组或其他自定义组,并且他们的主目录应该有适当的权限。
sudo usermod -aG wheel username
sudo chown root:root /home/username
sudo chmod 755 /home/username
注意:wheel组通常用于允许用户使用sudo命令,但在这里我们只是为了示例。
SELinux配置(如果启用):
如果启用了SELinux,可能需要配置策略以允许SFTP访问。你可以使用semanage工具来管理SELinux策略。
sudo yum install policycoreutils-python-selinux
sudo semanage fcontext -a -t ssh_home_t "/home/username(/.*)?"
sudo restorecon -Rv /home/username
通过这些步骤,你应该能够在CentOS上成功配置SFTP服务。