SFTP故障排查清单
一 快速定位流程
sudo systemctl status sshd;sudo systemctl restart sshdsudo firewall-cmd --list-all;sudo firewall-cmd --permanent --add-port=22/tcp && sudo firewall-cmd --reloadping 再 telnet 服务器IP 22 验证端口可达。Subsystem sftp /usr/libexec/openssh/sftp-server 或 Subsystem sftp internal-sftpsudo tail -f /var/log/secure(RHEL/CentOS),或 /var/log/auth.log(Debian/Ubuntu)sftp -v 输出详细握手与认证过程,便于定位握手/算法/认证阶段问题。二 常见症状与处理要点
sudo chage -l 用户名sshd_config 中修改端口并同步客户端。三 权限与 Chroot 专项排查
chown username:username /home/username;chmod 755 /home/username;chmod 775 /home/username/uploadsinternal-sftp 或 ChrootDirectory 时):
~/uploads)。sudo sestatus;必要时 sudo setsebool -P sftp_home_dir on;目录上下文可用 semanage fcontext/restorecon 修复。sudo systemctl restart sshd四 日志与网络诊断命令速查
sudo systemctl status sshdsudo firewall-cmd --list-all;sudo firewall-cmd --permanent --add-port=22/tcp && sudo firewall-cmd --reloadsudo ss -tnlp | grep :22 或 netstat -tnlp | grep :22ping 服务器IP;telnet 服务器IP 22sudo tail -f /var/log/secure(RHEL/CentOS),/var/log/auth.log(Debian/Ubuntu)top、free -m、df -h(排查负载/内存/磁盘空间不足)sftp -v user@hostsudo grep MaxStartups /etc/ssh/sshd_config(必要时调大并重启 sshd)五 最小可用配置示例
sudo useradd -m -d /data/sftp/%u sftpuserecho "sftpuser:YourStrongPass!" | sudo chpasswdsudo chown root:root /data/sftp/sftpuser && sudo chmod 755 /data/sftp/sftpusersudo mkdir -p /data/sftp/sftpuser/uploads && sudo chown sftpuser:sftpuser /data/sftp/sftpuser/uploads && sudo chmod 775 /data/sftp/sftpuser/uploadsSubsystem sftp internal-sftpMatch User sftpuser
ChrootDirectory /data/sftp/%uForceCommand internal-sftpAllowTcpForwarding noX11Forwarding nosudo systemctl restart sshdsftp -v sftpuser@服务器IPtail -f /var/log/secure 查看具体报错并对照上节处理。