要解决Ubuntu SFTP登录问题,可以按照以下步骤进行排查和解决:
首先,确认SFTP服务是否已正确配置并启动。
sudo systemctl status sshd
如果服务未运行,使用以下命令启动它:
sudo systemctl start sshd
确保防火墙允许SFTP连接(默认端口22)。
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登录
修改配置文件后,重启SSH服务:
sudo systemctl restart sshd
检查/var/log/auth.log文件,寻找连接失败的原因。
sudo tail -f /var/log/auth.log
确保使用正确的用户名和密码进行登录。如果密码过期,可以使用以下命令修改密码有效期:
sudo chage -M 90 username
如果使用SELinux或AppArmor,确保它们没有限制SFTP服务。
sudo sestatus
sudo apparmor_status
检查并修改/etc/ssh/sshd_config文件中的MaxStartups参数,以允许更多的并发连接。
MaxStartups 10000
修改后重启SSH服务。
使用ping和telnet命令测试服务器网络连通性和端口开放情况。
ping server_ip
telnet server_ip 22