CentOS 8上搭建SFTP服务器的步骤
在CentOS 8上搭建SFTP服务器涉及几个步骤,包括安装必要的软件、配置SSH以支持SFTP、创建用户等。以下是详细的步骤:
1. 更新系统
首先,确保你的系统是最新的。
sudo dnf update
2. 安装OpenSSH服务器
SSH服务通常已经安装在大多数Linux系统上,但可以通过以下命令安装或更新:
sudo dnf install -y openssh-server
3. 启动并启用SSH服务
确保SSH服务正在运行并配置为开机自动启动。
sudo systemctl start sshd
sudo systemctl enable sshd
4. 创建SFTP用户组和用户
为了安全管理,可以创建一个专用于SFTP访问的用户组和用户。
sudo groupadd sftpusers
sudo useradd -m -G sftpusers -s /sbin/nologin sftpuser
为新用户设置密码:
sudo passwd sftpuser
5. 配置SSH以支持SFTP
编辑SSH配置文件/etc/ssh/sshd_config
。
sudo nano /etc/ssh/sshd_config
在文件中找到并修改以下内容(或添加新的配置):
# Subsystem sftp /usr/libexec/openssh/sftp-server # 注释掉这行
Subsystem sftp internal-sftp
# 在文件末尾添加以下内容
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
6. 设置目录权限
确保用户主目录的所有权和权限设置正确。ChrootDirectory
必须由root拥有,用户不应有写权限。
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
7. 为用户创建上传目录
创建一个可供用户上传文件的目录,并调整权限。
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpusers /home/sftpuser/upload
sudo chmod 755 /home/sftpuser/upload
8. 重启SSH服务
在修改配置文件后,需重启SSH服务以应用更改。
sudo systemctl restart sshd
9. 测试SFTP访问
你可以使用SFTP客户端(如FileZilla)连接到服务器进行测试,使用sftpuser
和你设置的密码。
成功连接后,你应该只能访问/upload
目录,而无法访问其他系统资源。
这就是在CentOS 8上搭建SFTP服务器的基本过程,要根据具体使用需求调整配置以确保安全性和功能性。