配置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:
编辑SSH配置文件/etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_config
找到并确保以下行没有被注释掉(删除行首的#):
Subsystem sftp /usr/libexec/openssh/sftp-server
如果你想要限制用户只能使用SFTP而不能使用SSH shell,可以添加或修改以下配置:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
这里,sftpusers是一个用户组,你需要在下一步创建它。
创建一个专门的用户组用于SFTP用户:
sudo groupadd sftpusers
创建SFTP用户并添加到组中:
创建一个新用户并将其添加到sftpusers组中。例如,创建一个名为sftpuser的用户:
sudo adduser sftpuser
sudo passwd sftpuser
sudo usermod -aG sftpusers sftpuser
在设置密码时,请按照提示操作。
设置用户的家目录权限: 确保用户的家目录权限设置正确,以便SFTP可以正常工作:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
重启SSH服务: 应用配置更改后,重启SSH服务:
sudo systemctl restart sshd
测试SFTP连接: 使用SFTP客户端连接到服务器,例如使用命令行:
sftp sftpuser@your_server_ip
如果一切配置正确,你应该能够登录并使用SFTP。
请注意,这些步骤提供了一个基本的SFTP配置。根据你的具体需求,可能还需要进行额外的安全设置,例如配置防火墙规则、使用密钥认证而不是密码认证等。