在Linux系统上配置SFTP服务器的步骤如下:
1. 安装OpenSSH服务器
首先,确保系统上已经安装了OpenSSH服务器。可以使用以下命令进行安装:
-
对于基于Debian的系统(如Ubuntu):
sudo apt update sudo apt install openssh-server
-
对于基于RPM的系统(如CentOS、RHEL):
sudo yum install openssh-server
或
sudo dnf install openssh-server
2. 创建SFTP用户组
创建一个专门的SFTP用户组,用于管理SFTP用户:
sudo groupadd sftpgroup
3. 创建SFTP用户
创建一个新的SFTP用户,并将其添加到SFTP用户组中。禁用用户的shell登录,以增强安全性:
sudo useradd -g sftpgroup -s /sbin/nologin mysftp
然后为新用户设置密码:
sudo passwd mysftp
4. 配置用户的家目录
-
创建用户的家目录,并将其设置为用户的根目录(chroot环境):
sudo mkdir -p /home/mysftp sudo usermod -d /home/mysftp mysftp
-
设置家目录的权限:
sudo chown root:sftpgroup /home/mysftp sudo chmod 755 /home/mysftp
-
为用户创建一个可上传的目录,并设置相应的权限:
sudo mkdir /home/mysftp/upload sudo chown mysftp:sftpgroup /home/mysftp/upload sudo chmod 755 /home/mysftp/upload
5. 配置SSH服务
编辑SSH配置文件 /etc/ssh/sshd_config
,以启用SFTP子系统:
sudo nano /etc/ssh/sshd_config
在文件末尾添加或修改以下内容:
Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /home/mysftp/\u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
保存并关闭文件。
6. 关闭SELinux(如适用)
如果系统启用了SELinux,需要临时关闭它:
sudo setenforce 0
或者编辑 /etc/selinux/config
文件,将 SELINUX
设置为 disabled
,然后重启系统以应用更改。
7. 重启SSH服务
重启SSH服务以使配置生效:
sudo systemctl restart sshd
8. 验证SFTP连接
使用SFTP客户端连接到服务器,并测试上传和下载功能:
sftp mysftp@localhost
输入密码后,应该能够访问SFTP环境。
9. 配置防火墙(如需要)
确保防火墙允许SFTP使用的端口(默认是22):
sudo ufw allow 22
通过以上步骤,您可以在Linux系统上成功配置SFTP服务器,实现安全的文件传输和管理。