下面给你一份在 Debian 上配置 SFTP(基于 OpenSSH)的常见、稳妥做法,适用于仅 SFTP、禁止 SSH 登录的场景,也包含普通可用版本。
sudo apt update
sudo apt install openssh-server
sudo adduser sftpuser
(设置密码,可留空壳)
sudo mkdir -p /sftp/sftpuser
sudo chown root:root /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser
sudo mkdir /sftp/sftpuser/upload
sudo chown sftpuser:sftpuser /sftp/sftpuser/upload
编辑 SSH 配置:
sudo nano /etc/ssh/sshd_config
# Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Match User sftpuser
ChrootDirectory /sftp/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes
多个用户可用
Match Group sftp方式
sudo groupadd sftp
sudo usermod -G sftp sftpuser
sshd_config:
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
目录结构:
/sftp/
└── sftpuser/
└── upload/
sudo systemctl restart ssh
sftp sftpuser@服务器IP
登录后:
cd upload
put test.txt
Chroot 目录必须:
上传目录要属于该用户
确认有:
ForceCommand internal-sftp
如果你需要:
告诉我你的使用场景即可。