为什么 SSH 连接需要很长时间

Omi*_*uin 55 ssh rhel

我注意到网络中的某些 Linux 服务器需要很长时间才能使用 ssh 进行连接。

情况

我遇到过两种情况:

  1. 在某些服务器上有时需要很长时间才能要求密码

  2. 但在其他服务器上,当我插入密码时,它没有响应。一段时间后说 20 0r 30 秒它只是说连接关闭

1个案例的详细信息

debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

debug2: we did not send a packet, disable method
debug1: Next authentication method: publickey
debug1: Trying private key: /home/umairmustafa/.ssh/id_rsa
debug1: Trying private key: /home/umairmustafa/.ssh/id_dsa
debug1: Trying private key: /home/umairmustafa/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
Run Code Online (Sandbox Code Playgroud)

Mik*_*keV 52

我今天早上也遇到了同样的问题...

编辑您/etc/ssh/sshd_config的设置GSSAPIAuthentication no

  • 我必须在编辑后运行 `/sbin/service sshd restart` 才能使其工作 (7认同)
  • 想进一步说明吗?我们为什么要这样做? (3认同)
  • @TimothyPulliam - 一些想法 1) OPENssh 使用这个 API 和底层的 kerberos 5 代码来提供 ssh_keys 以外的另一种身份验证方式,我怀疑大多数用户只是使用 ssh_keys 2) 从 Oracle Linux 中发现 V-22473“允许 GSSAPI 身份验证“通过 SSH 将系统的 GSSAPI 暴露给远程主机,增加了系统的攻击面。除非需要,否则必须禁用 GSSAPI 身份验证。” 所以听起来它提高了安全性 3) 不能编辑 /etc/ssh/sshd_config 的用户可以把它放在他们的 ~/.ssh/config 文件中 (2认同)

rep*_*lay 28

当 DNS 配置不正确时,我经常会遇到这种情况,但 SSH 试图对每次连接进行反向查找,因此它可能正在等待一些高超时。尝试这样做/etc/ssh/sshd_config

UseDNS no
Run Code Online (Sandbox Code Playgroud)

然后重新启动 SSH 守护进程。这将使它不再使用反向查找。

  • 那只是掩盖一个_严重的_问题。修复 DNS。 (4认同)
  • @vonbrand 听起来像 FUD。你有什么理由认为“UseDNS no”不好? (3认同)
  • 不一定,我们只是决定不在我们的生产环境中使用 DNS。 (2认同)
  • @Patrick 该选项本身还不错,但不应该用于隐藏 DNS 问题上的“论文”(这可能更重要)。 (2认同)

小智 7

如果您不想更改任何服务器配置

前往$HOME/.ssh/config并添加

Host *
  GSSAPIAuthentication no
Run Code Online (Sandbox Code Playgroud)


小智 5

我发现了另一个导致 ssh 需要一两分钟才能连接的原因。如果您按如下方式建立连接:

ssh -i keypair.pem user@hostname.domain.com
Run Code Online (Sandbox Code Playgroud)

并且hostname.domain.com同时具有 IPv4 和 Ipv6 地址,它会首先尝试通过 IPv6 连接,然后最终退回到 IPv4。

简单修复,强制它仅使用 IPv4。

ssh -4 -i keypair.pem user@hostname.domain.com
Run Code Online (Sandbox Code Playgroud)

或者直接通过IP地址连接

ssh -i keypair.pem user@30.40.50.60
Run Code Online (Sandbox Code Playgroud)