在Debian中配置SFTP的详细步骤
Debian系统通常预装OpenSSH服务器,若未安装,可通过以下命令快速安装:
sudo apt update
sudo apt install openssh-server
编辑SSH核心配置文件/etc/ssh/sshd_config(需root权限):
sudo nano /etc/ssh/sshd_config
进行以下关键修改:
# Subsystem sftp /usr/lib/openssh/sftp-server行,取消注释并将路径改为internal-sftp(更轻量且无需额外安装):Subsystem sftp internal-sftp
sftpusers组内的用户限制在自家目录(ChrootDirectory),并禁用端口转发、X11转发等非必要功能:Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
注:
Match块需放在文件末尾,避免与其他配置冲突。
sudo groupadd sftpusers
ftpuser为例,创建用户时设置密码,并将其添加到sftpusers组:sudo adduser ftpuser # 按提示设置密码及个人信息
sudo usermod -aG sftpusers ftpuser # 将用户追加到sftpusers组
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:sftpusers /home/ftpuser/upload # 所属组设为sftpusers,允许组内用户上传
修改配置后,需重启SSH服务以应用更改:
sudo systemctl restart sshd
若需验证服务状态,可执行:
sudo systemctl status sshd
确保显示“active (running)”即为正常。
使用SFTP客户端(如Linux终端或WinSCP)连接服务器,验证配置是否成功:
sftp ftpuser@your_server_ip
输入密码后,若成功登录并显示用户主目录(如/home/ftpuser),且能执行ls、put、get等命令,则说明配置生效。
注:若配置了
ChrootDirectory,用户将无法访问主目录以外的路径(如/root、/etc)。
sudo systemctl status sshd),或防火墙是否放行22端口(sudo ufw allow 22)。chown),且权限为755(chmod);上传目录需属于用户组且有写入权限(chown ftpuser:sftpusers upload)。sudo tail -f /var/log/auth.log