CentOS 上 SFTP 登录慢 是一个非常常见的问题,通常不是网络本身慢,而是 SSH/SFTP 连接过程中的某些机制在等待或阻塞。下面按最常见 → 较少见的顺序给你系统性的原因和解决办法。
SSH 默认会对客户端 IP 做 DNS 反向解析(Reverse DNS),如果 DNS 不可达或慢,就会卡住。
编辑 SSH 配置:
vim /etc/ssh/sshd_config
添加或修改:
UseDNS no
然后重启 SSH:
systemctl restart sshd
⚠️ 注意:是 sshd_config,不是 ssh_config
SSH 尝试 GSSAPI 认证(Kerberos),但服务器不支持或网络不通。
vim /etc/ssh/sshd_config
修改:
GSSAPIAuthentication no
重启:
systemctl restart sshd
查看登录耗时:
ssh -v user@ip
如果卡在:
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
多半是认证阶段问题。
直接用 root 登录测试,排除用户相关 PAM 问题。
getenforce
如果是 Enforcing,可临时关闭测试:
setenforce 0
如果立刻变快,说明是 SELinux 策略问题。
ChrootDirectory/dev/null、/dev/urandom 等Subsystem sftp internal-sftp
Match Group sftpuser
ChrootDirectory /data/sftp
ForceCommand internal-sftp
目录权限要求:
chown root:root /data/sftp
chmod 755 /data/sftp
测试:
ping -M do -s 1472 目标IP
✅ 1. 关闭 DNS
UseDNS no
✅ 2. 关闭 GSSAPI
GSSAPIAuthentication no
✅ 3. 重启 sshd
systemctl restart sshd
✅ 4. 用调试模式测试
sftp -v user@ip
CentOS SFTP 登录慢,90% 是
UseDNS yes + GSSAPIAuthentication yes导致的。
如果你愿意,可以把下面信息发我,我可以帮你精准定位:
ssh -v 卡在哪一步我可以直接给你一份最优 sshd_config 模板。