在CentOS上部署SFTP服务器通常涉及以下几个步骤:
安装OpenSSH服务器: OpenSSH是一个常用的SSH协议实现,它包含了SFTP功能。首先,你需要确保OpenSSH服务器已经安装在你的CentOS系统上。
sudo yum update -y
sudo yum install openssh-server -y
启动并启用SSH服务: 安装完成后,启动SSH服务并设置为开机自启。
sudo systemctl start sshd
sudo systemctl enable sshd
配置SSH服务:
编辑SSH配置文件/etc/ssh/sshd_config
来启用SFTP并对其进行配置。
sudo vi /etc/ssh/sshd_config
在文件中找到以下行并进行相应的修改:
# 子系统 sftp 内置
Subsystem sftp /usr/libexec/openssh/sftp-server
确保这一行没有被注释掉(没有#号)。你还可以添加或修改以下配置来限制用户只能使用SFTP:
# 只允许SFTP连接
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
这里,Match Group sftpusers
表示接下来的配置只适用于名为sftpusers
的用户组。ChrootDirectory %h
将用户的根目录限制在其主目录中,ForceCommand internal-sftp
强制使用SFTP,而AllowTcpForwarding no
和X11Forwarding no
禁用了TCP和X11转发。
创建SFTP用户组并添加用户: 创建一个专门用于SFTP的用户组,并将需要访问SFTP的用户添加到这个组中。
sudo groupadd sftpusers
sudo useradd -m -G sftpusers username
将username
替换为你想要添加的用户名。-m
选项表示创建用户的主目录。
设置用户密码: 为新创建的用户设置密码。
sudo passwd username
按照提示输入并确认密码。
调整防火墙设置: 如果你的CentOS服务器启用了防火墙,确保开放SSH(默认端口22)的端口。
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --reload
重启SSH服务: 为了使配置生效,重启SSH服务。
sudo systemctl restart sshd
现在,你应该能够使用SFTP客户端连接到你的CentOS服务器了。记得使用你在步骤4中创建的用户名和密码进行连接。如果一切设置正确,你将只能访问该用户的主目录及其子目录,无法访问其他文件系统区域。