在Linux系统上配置SFTP服务器的步骤如下:
首先,确保系统上已经安装了OpenSSH服务器。可以使用以下命令进行安装:
对于基于Debian的系统(如Ubuntu):
sudo apt update sudo apt install openssh-server 对于基于RPM的系统(如CentOS、RHEL):
sudo yum install openssh-server 或
sudo dnf install openssh-server 创建一个专门的SFTP用户组,用于管理SFTP用户:
sudo groupadd sftpgroup 创建一个新的SFTP用户,并将其添加到SFTP用户组中。禁用用户的shell登录,以增强安全性:
sudo useradd -g sftpgroup -s /sbin/nologin mysftp 然后为新用户设置密码:
sudo passwd mysftp 创建用户的家目录,并将其设置为用户的根目录(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 编辑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 保存并关闭文件。
如果系统启用了SELinux,需要临时关闭它:
sudo setenforce 0 或者编辑 /etc/selinux/config 文件,将 SELINUX 设置为 disabled,然后重启系统以应用更改。
重启SSH服务以使配置生效:
sudo systemctl restart sshd 使用SFTP客户端连接到服务器,并测试上传和下载功能:
sftp mysftp@localhost 输入密码后,应该能够访问SFTP环境。
确保防火墙允许SFTP使用的端口(默认是22):
sudo ufw allow 22 通过以上步骤,您可以在Linux系统上成功配置SFTP服务器,实现安全的文件传输和管理。