当在Ubuntu上使用SFTP连接失败时,可以按照以下步骤进行排查和解决:
检查SFTP服务状态:
sudo dpkg-query -l | grep openssh-server
sudo systemctl status sshd
sudo systemctl start sshd
检查防火墙设置:
sudo ufw allow 22/tcp
firewalld:sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
检查SSH配置文件:
/etc/ssh/sshd_config,确保以下配置项正确:Subsystem sftp /usr/lib/openssh/sftp-server
PasswordAuthentication yes
PermitRootLogin yes # 如果需要root登录
sudo systemctl restart sshd
检查SFTP日志文件:
/var/log/auth.log,以获取连接失败的原因:sudo tail -f /var/log/auth.log
检查网络连接:
ping [服务器 IP 地址]
telnet [服务器 IP 地址] 22
检查用户名和密码:
sudo chage -l [用户名]
sudo chage -M 90 [用户名]
检查SELinux和AppArmor策略:
sudo sestatus
sudo apparmor_status
检查连接数限制:
/etc/ssh/sshd_config文件中的MaxStartups参数,以允许更多的并发连接。sudo cat /etc/ssh/sshd_config | grep MaxStartups
sudo sed -i '/#MaxStartups 10:30:100/MaxStartups 10000/g' /etc/ssh/sshd_config
sudo systemctl restart sshd
检查SFTP服务器资源:
sudo top
通过以上步骤,您可以排查Ubuntu系统SFTP连接故障。如果问题仍未解决,建议查阅相关文档或寻求专业帮助。