登录等待时间长


20

当我登录服务器时,得到以下信息:

No mail.
Last login: Fri Nov  5 14:22:45 2010...

然后我必须等待5秒钟,然后准备就绪...

wolfy@ubuntu-server:~$

这是正常的等待时间,还是我应该做些“修复”的事情?


1
您是否正在使用ssh选项keepalive?

Answers:


18

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


辉煌。对我来说,它是文件90更新。50-landscape-sysinfo也不是最快的。
Matt H

13

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

当我使用运行ssh时-vvv,它死于:

debug1: Entering interactive session.

扩展这个答案。

我设法远程重启服务器并启用了DEBUG loggin。还利用此机会保持登录状态并观察其他登录尝试。这是发生了什么。客户端连接被授权并挂在上面的消息。

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

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>

/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

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

总的来说,我发现没有办法pam_motd完全禁用它,因为无论如何它都会使登录过程变慢。它不会像中的脚本那样阻塞landscape-common,但是速度较慢。

有关此问题的错误报告:

解决方法:

没错,登录功能比提示更重要。如果您遇到此问题,可以通过以下几种方法禁用它:

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

10

终于自己找到了解决方案:

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

现在登录即刻!


好像是某些网络问题使统计数据保持正常?
0xF2 2013年

4

根据您的描述,这听起来更像是网络问题。诊断:

  • 使用-v参数运行ssh会很详细。
  • 尝试对要连接的SSH服务器执行ping操作,然后查看它是否也同时挂起。
  • 尝试其他传输到同一服务器。例如,带有--limit-rate参数的wget可以通过HTTP获取文件,并且花费足够长的时间以至于它可能触发“挂起”行为。
  • 查看它是否仅在空闲时挂起,或者即使您当前正在做某事。如果闲置时挂起,-v诊断程序可能会告诉您,在这种情况下,使用keepalive的建议可能会有所帮助(ssh -o“ TCPKeepAlive yes”)

如果可以将OK与Windows和PuTTY连接,则在服务器端可能不是问题。


3

如果PermitEmptyPasswordUsePAM都被启用,则OpenSSH服务器将始终尝试使用空密码进行身份验证,这表示该帐户不需要身份验证。两种协议中的身份验证过程一开始就执行此操作,并且不会响应来自客户端的任何“真实”身份验证请求。如果sshd_config标志,OpenSSH将仅允许这种访问PermitEmptyPassword设置。不幸的是,在编写代码的方式中,无论如何它都会执行密码测试,因此显示为PAM失败。

因此:禁用PermitEmptyPasswordUsePAM,但请记住:没有PAM,没有密钥就无法登录。

参考:https : //groups.google.com/forum/?fromgroups=#!topic/ comp.security.ssh/ wExY8lWlG-c


我将这个答案添加到了这个旧问题,因为我遇到了同样的问题(登录速度缓慢),但是这里没有任何问题可以解决我的问题。这是我的解决方案。
亚历山德罗·佩扎托

不得不禁用两个设置
Androbin

2

我认为,当您登录时,ubuntu会执行以下一个或多个文件:

/etc/bash.bashrc
~/.bash_profile
~/.bashrc

您可以查看其中包含的内容,甚至可以尝试执行它们以查看所需的时间。


2

以我有限的经验,当腻子起作用时,但Linux(在这种情况下,Ubuntu则不行)通常可以存活。网络或服务器问题将影响两个客户端操作系统。

您可以在命令行上使用上面的keep alive选项,但是键入它有点繁琐。

易于编辑一些配置文件。

如果您有root access,并希望为所有用户自动启用它,请编辑/etc/ssh/ssh_config,然后添加

KeepAlive yes
ServerAliveInterval 120

如果您没有root用户访问权限,或者要为单个用户启用它,请编辑~/.ssh/config并添加相同的两行。


0

在/ var / log上检查系统日志,您可能会发现一条带有相关错误/超时的消息。


0

如果您还有时间等一下

编辑 /etc/sshd_config

并设置(或添加)

UseDNS no

或添加您的IP(/etc/hosts如果它是静态本地IP)


0

从已经登录的连接(或其他控制台)登录到服务器时,您可能想尝试监视正在运行的进程。有机会发现当时哪个进程最活跃或使用最多的CPU。

下面是一种可能的方法:

  1. 尝试登录其他控制台。
  2. 跑到top那里看看会发生什么。
  3. 在第一个控制台上登录。

请注意,如果延迟不是由某些占用大量CPU的计算引起的,则不会发现任何异常情况。在这种情况下,问题可能是受I / O约束(正在等待某些磁盘读/写或网络响应)。


顶部显示了此信息(登录时):12112 sshd 20 0 6988 856 412 S 13.9 0.1 0:00.42 sshd
Wolfy

@Idi,我认为这应该是评论。
tshepang 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.