在我的 Centos7 系统上,每当我尝试 ssh 时,“登录”提示很快就会出现,但下一个要求输入密码的提示大约需要 2 分钟才会出现。我调试了 ssh 会话,发现在下面的两个调试之间它挂在某处。发送 50 个数据包后,它停留 2 分钟,然后接收 51 个数据包,然后其余部分以正常速度进行。我有另一个系统,我为 ssh 进行了调试,但是在这两个数据包事务之间没有观察到延迟
**debug3: send packet: type 50
debug3: receive packet: type 51**
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-keyex
debug3: remaining preferred: gssapi-with-mic,publickey,keyboard-interactive,password
答案1
听起来在 2 分钟的延迟期间可能有多次 DNS 查找尝试失败。最常见的原因可能是当仅知道客户端主机的 IP 地址时,无法反向查找客户端主机的名称。
如果您登录服务器并运行dig +short -x <client IP address>
,提示是否立即有效返回(有或没有答案),还是有延迟?
如果您不使用 GSSAPI 身份验证方法,在服务器端禁用它们可能会有所帮助。还要确保服务器具有,/etc/ssh/sshd_config
除非UseDNS no
您特别需要sshd
执行 DNS 查找。