在CentOS系统上配置SFTP主要依赖于OpenSSH服务器。以下是详细的配置步骤和所需依赖:
首先,确保你的CentOS系统已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo yum install openssh-server
安装完成后,启动SSH服务,并设置其开机自启:
sudo systemctl start sshd
sudo systemctl enable sshd
确保SSH服务正在运行,并且没有错误:
sudo systemctl status sshd
创建SFTP用户:
sudo useradd -m -s /sbin/nologin sftpuser
设置用户密码:
sudo passwd sftpuser
创建用户的SFTP根目录:
sudo mkdir /sftp
设置根目录的权限(根目录必须是root用户):
sudo chown root:root /sftp
sudo chmod 755 /sftp
在根目录下创建子目录,并设置写入权限:
sudo mkdir /sftp/sharedata
sudo chown sftpuser:sftpuser /sftp/sharedata
创建新用户的SSH配置文件目录:
sudo mkdir /home/sftpuser/.ssh
复制系统SSH配置文件到用户目录:
sudo cp /etc/ssh/sshd_config /home/sftpuser/.ssh/sshd_config
编辑用户的SSH配置文件:
sudo vi /home/sftpuser/.ssh/sshd_config
在配置文件中添加以下内容:
Match User sftpuser
ChrootDirectory /sftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
注意将这个配置节放到最后,否则会出现“Directive ‘UseDNS’ is not allowed within a Match block”的错误。
给新用户的用户目录递归设置归属:
sudo chown -R sftpuser:sftpuser /home/sftpuser
给配置文件设置读取权限:
sudo chmod 755 /home/sftpuser/.ssh/sshd_config
修改SSH服务启动选项(可选): 如果你需要为多个用户指定不同的配置,可以在SSH服务的启动选项中指定这些文件。
sudo systemctl daemon-reload
sudo systemctl restart sshd
你可以使用SFTP客户端(如FileZilla或WinSCP)来测试SFTP连接。在客户端中输入你的CentOS系统的IP地址、SFTP用户名和密码。
通过以上步骤,你可以在CentOS系统上成功配置SFTP服务器。