一、安装OpenSSH服务
首先,我们需要安装OpenSSH服务,该服务提供了SSH协议的服务端和客户端实现,还包含SCP和SFTP工具。
1. 安装
sudo yum install openssh-server
2. 启动服务
sudo systemctl start sshd.service
3. 设置开机自启
sudo systemctl enable sshd.service
二、创建SFTP用户并限制登录
1. 创建SFTP用户
首先,我们需要创建一个SFTP用户,并将其目录设置为其家目录。
sudo useradd -m -d /home/sftpuser -s /sbin/nologin sftpuser
2. 为SFTP用户创建密码
sudo passwd sftpuser
3. 限制SFTP用户的Shell访问
为了安全起见,我们应该限制SFTP用户的Shell访问,以防止他们在登录后执行Shell命令。
sudo usermod -s /bin/false sftpuser
4. 设置SFTP用户的目录权限
我们可以为SFTP用户创建一个文件夹,用于存储他们的文件,并将它们的权限设置为只读。
sudo mkdir -p /home/sftpuser/files
sudo chown -R root:root /home/sftpuser
sudo chmod -R go-w /home/sftpuser
sudo chmod 755 /home/sftpuser/files
三、配置OpenSSH SFTP服务器
1. 备份sshd_config
为了安全起见,在进行以下配置之前,我们应该对sshd_config文件进行备份。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
2. 进行配置
我们需要编辑sshd_config文件,为SFTP用户配置以下内容,将其插入文件的底部。
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
四、测试SFTP
1. 用SFTP客户端验证
我们可以用任何的SFTP客户端来验证SFTP是否能正常工作。如果SFTP用户能够登录,并且只能访问他们的目录,则说明一切正常。
2. 测试文件上传和下载
尝试将本地文件上传至远程服务器,或者将远程文件下载到本地。
sftp sftpuser@your_server_ip
put localfile /files
get filename
五、总结
本文讲述了如何在CentOS上快速搭建高效稳定的SFTP服务器。通过以上步骤,您已经可以创建一个可靠的SFTP服务器,限制用户访问,保护服务器安全。