登录等待时间长

Wol*_*lfy 22 server ssh performance login

当我登录我的服务器时,我得到这个:

No mail.
Last login: Fri Nov  5 14:22:45 2010...
Run Code Online (Sandbox Code Playgroud)

然后我必须等待 5 秒然后准备好了...

wolfy@ubuntu-server:~$
Run Code Online (Sandbox Code Playgroud)

这个等待时间是正常的还是我应该做些什么来“修复”这个?

Kee*_*ook 18

这通常是pam_motd重新生成/etc/motd文件的结果。您可以检查各个脚本/etc/update-motd.d以查看是否特别慢。


Til*_*ill 13

我对 10.04 (LTS) 也有同样的问题。

当我用 运行我的 ssh 时-vvv,它死在:

debug1: Entering interactive session.
Run Code Online (Sandbox Code Playgroud)

扩展这个答案。

我设法远程重新启动服务器并启用调试登录。还利用这个机会保持登录状态并观察其他登录尝试。这是发生的事情。客户端连接授权并挂在上述消息。

在服务器上,进程列表显示:

root       835  0.0  0.1  11476  3348 ?        Ss   13:39   0:00 sshd: till [priv]
root       840  0.0  0.0   4804  1124 ?        S    13:39   0:00 /bin/sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/run-parts --lsbsysinit /etc/update-motd.d
root       841  0.0  0.0   4728  1108 ?        S    13:39   0:00 /bin/run-parts --lsbsysinit /etc/update-motd.d
root       854  0.0  0.0   4804  1144 ?        S    13:39   0:00 /bin/sh /etc/update-motd.d/50-landscape-sysinfo
root       861  0.2  0.5  15388  9248 ?        S    13:39   0:00 /usr/bin/python /usr/bin/landscape-sysinfo
root       863  0.0  0.0      0     0 ?        Z    13:39   0:00 [who] <defunct>
Run Code Online (Sandbox Code Playgroud)

我可以/usr/bin/python /usr/bin/landscape-sysinfo在登录时正常执行,但由于某种原因,我无法弄清楚为什么它会阻止登录过程。当我终止进程时,登录继续提示并成功

这似乎不是 ssh(d) 问题,它update-motd与景观更相关。我卸载了该update-motd软件包,但似乎/etc/update-motd目录仍然存在并且脚本仍在执行 - 导致进程挂起。


进一步调试:

原来该/etc/update-motd.d/目录并不真正属于该包update-motd,它似乎是通过 sshd 由 pam 身份验证触发的。


我好像搞定了!

在以下文件中禁用 pam_motd:

  • /etc/pam.d/sshd
  • /etc/pam.d/login

多一个:

apt-get purge landscape-client landscape-common
Run Code Online (Sandbox Code Playgroud)

这些似乎在一定程度上有所帮助。但是,它只会删除有问题的脚本/etc/update-motd.d/,既不会删除该目录中的所有脚本,也不会删除pam_motd

一般来说,我发现没有办法pam_motd完全禁用,因为无论它做什么,它都会在一定程度上减慢登录过程。它不像 中的脚本那样阻塞landscape-common,但速度较慢。

关于这个问题的错误报告:

从那里解决方法:

您是对的,登录能力比展示 motd 更重要。如果此行为对您来说是个问题,您可以通过多种方式禁用它:

  • /etc/pam.d/sshd如果您不想显示 motd,请注释掉 'pam_motd' 行。
  • 删除/etc/update-motd.d目录的内容。
  • chmod -x/etc/update-motd.d不想运行的脚本。


Bar*_*ter 10

最后自己找到了解决方案:

  1. sudo apt-get remove landscape-client landscape-common
  2. 注释行 session optional pam_motd.so/etc/pam.d/login/etc/pam.d/sshd

现在登录是即时的!