Linux SFTP配置步骤详解
一 环境准备与安装
dpkg -l | grep sshrpm -qa | grep sshsudo apt-get update && sudo apt-get install openssh-serversudo yum install openssh-serversudo dnf install openssh-server二 创建 SFTP 用户与目录结构
sudo groupadd sftpgroupsudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpusersudo passwd sftpusersudo mkdir -p /srv/sftpusersudo chown root:root /srv/sftpusersudo chmod 755 /srv/sftpusersudo mkdir -p /srv/sftpuser/datasudo chown sftpuser:sftpgroup /srv/sftpuser/datasudo chmod 755 /srv/sftpuser/data三 配置 OpenSSH 启用 SFTP 并限制访问
Subsystem sftp internal-sftpMatch Group sftpgroup
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes # 如需密钥登录,可改为 no 并配置公钥
Match Group sftpgroup 改为 Match User sftpuser。sudo systemctl restart sshsudo systemctl restart sshdForceCommand internal-sftp 禁止该用户获得交互式 Shell。四 客户端连接与常用操作
sftp sftpuser@SERVER-IPsftp -P 2222 sftpuser@SERVER-IPls;切换目录:cdput local_file [remote_file];下载:get remote_file [local_file]put -r local_dir [remote_dir];下载目录:get -r remote_dir [local_dir]exit 或 bye五 权限与安全加固
Match User/Group + ForceCommand internal-sftp 限制;必要时将用户 Shell 设为 /sbin/nologin。sudo semanage fcontext -a -t ssh_home_t "/srv/sftpuser(/.*)?" && sudo restorecon -Rv /srv/sftpuserForceCommand internal-sftp、ChrootDirectory 路径与权限。-P 指定新端口;同时确认防火墙放行。