AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 11538
Accepted
Wolfy
Wolfy
Asked: 2010-11-06 05:57:46 +0800 CST2010-11-06 05:57:46 +0800 CST 2010-11-06 05:57:46 +0800 CST

登录等待时间长

  • 772

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

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

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

wolfy@ubuntu-server:~$

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

server ssh performance login
  • 10 10 个回答
  • 20290 Views

10 个回答

  • Voted
  1. Best Answer
    Kees Cook
    2010-11-06T12:33:49+08:002010-11-06T12:33:49+08:00

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

    • 18
  2. Till
    2012-07-12T05:20:29+08:002012-07-12T05:20:29+08:00

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

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

    debug1: Entering interactive session.
    

    扩展这个答案。

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

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

    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,但速度较慢。

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

    • https://bugs.launchpad.net/ubuntu/+source/pam/+bug/805423

    从那里解决方法:

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

    • /etc/pam.d/sshd如果您不想显示 motd,请注释掉 'pam_motd' 行。
    • 删除/etc/update-motd.d目录的内容。
    • chmod -x/etc/update-motd.d你不想运行的脚本。
    • 13
  3. BarsMonster
    2011-03-22T21:12:46+08:002011-03-22T21:12:46+08:00

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

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

    现在登录是即时的!

    • 10
  4. roadmr
    2011-12-08T20:49:34+08:002011-12-08T20:49:34+08:00

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

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

    如果您可以使用 Windows 和 PuTTY 连接 OK,这可能不是服务器端的问题。

    • 4
  5. Alessandro Pezzato
    2012-10-02T12:53:51+08:002012-10-02T12:53:51+08:00

    如果PermitEmptyPassword和UsePAM都启用,OpenSSH 服务器总是尝试使用空密码进行身份验证,这表明相关帐户不需要身份验证。在两种协议中,只要身份验证过程开始,它就会执行此操作,而不是响应来自客户端的任何“真实”身份验证请求。如果设置了 sshd_config 标志,OpenSSH 将只允许此类访问PermitEmptyPassword;不幸的是,代码的编写方式在任何情况下都会执行密码测试,因此向 PAM 显示为失败。

    所以:禁用PermitEmptyPasswordor UsePAM,但请记住:没有 PAM,你将无法在没有密钥的情况下登录。

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

    • 3
  6. Savvas Radevic
    2010-11-06T07:30:39+08:002010-11-06T07:30:39+08:00

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

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

    您可以看到其中的内容,甚至可以尝试执行它们以查看花费了这么长时间的内容。

    • 2
  7. Panther
    2011-12-08T21:48:05+08:002011-12-08T21:48:05+08:00

    以我有限的经验,当 putty 工作时,但 Linux,在这种情况下,Ubuntu 没有,它通常是保持活动状态。网络或服务器问题会影响两个客户端操作系统。

    您可以在命令行上使用上述保持活动选项,但键入起来有点乏味。

    更容易编辑一些配置文件。

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

    KeepAlive yes
    ServerAliveInterval 120
    

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

    • 2
  8. João Pinto
    2010-11-06T06:14:36+08:002010-11-06T06:14:36+08:00

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

    • 0
  9. ido
    2010-11-06T06:17:38+08:002010-11-06T06:17:38+08:00

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

    以下是一种可能的方法:

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

    请注意,如果延迟不是由一些 CPU 密集型计算引起的,您将不会发现任何不合适的东西。在这种情况下,问题可能是 I/O 受限(等待某些磁盘读/写或网络响应)。

    • 0
  10. user11187
    2011-02-21T15:09:08+08:002011-02-21T15:09:08+08:00

    如果你之前也有时间等待

    编辑/etc/sshd_config

    并设置(或添加)

    UseDNS no
    

    /etc/hosts或者如果它是静态本地IP,则添加您的IP

    • 0

相关问题

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve