搭建SFTP服务器主要有以下步骤:
在Linux系统中,大多数发行版默认安装了OpenSSH客户端和服务端。如果没有安装,可以使用系统的包管理器如apt
或yum
进行安装。例如,在基于Debian的系统上,可以使用以下命令安装OpenSSH:
sudo apt update
sudo apt install openssh-server
使用groupadd
命令创建一个新的用户组,例如命名为sftp
:
sudo groupadd sftp
然后,创建SFTP用户并指定其登录shell为/bin/false
,以禁止shell访问。同时将这些用户加入之前创建的组:
sudo useradd -g sftp -s /bin/false sftp_user
为SFTP用户设置密码:
sudo passwd sftp_user
编辑SSH配置文件/etc/ssh/sshd_config
,添加或修改以下行:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /home/sftp_user
AllowTcpForwarding no
X11Forwarding no
这里,/home/sftp_user
是SFTP用户的根目录。ChrootDirectory
参数限制了用户只能访问其指定的家目录。
设定目录权限,确保新创建的目录具有适当的权限(通常为700),并且归属于对应的用户和用户组:
sudo mkdir /home/sftp_user
sudo chown sftp_user:sftp /home/sftp_user
sudo chmod 700 /home/sftp_user
保存配置文件后,需要重启SSH服务以应用更改:
sudo systemctl restart sshd
或者
sudo service ssh restart
使用SFTP客户端软件(如FileZilla)或sftp
命令尝试连接到服务器,验证用户能够登录并且只能访问其家目录。
以上步骤提供了在Linux系统上搭建SFTP服务器的基本流程。请根据您的具体需求和操作系统版本进行相应的调整。