Answers:
这通常是pam_motd重新生成/etc/motd文件的结果。您可以在其中检查各个脚本,/etc/update-motd.d以查看某些脚本是否特别慢。
我对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:
多一个:
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您不想运行的脚本。
终于自己找到了解决方案:
sudo apt-get remove landscape-client landscape-commonsession optional pam_motd.so
中/etc/pam.d/login和/etc/pam.d/sshd现在登录即刻!
根据您的描述,这听起来更像是网络问题。诊断:
如果可以将OK与Windows和PuTTY连接,则在服务器端可能不是问题。
如果PermitEmptyPassword和UsePAM都被启用,则OpenSSH服务器将始终尝试使用空密码进行身份验证,这表示该帐户不需要身份验证。两种协议中的身份验证过程一开始就执行此操作,并且不会响应来自客户端的任何“真实”身份验证请求。如果sshd_config标志,OpenSSH将仅允许这种访问PermitEmptyPassword设置。不幸的是,在编写代码的方式中,无论如何它都会执行密码测试,因此显示为PAM失败。
因此:禁用PermitEmptyPassword或UsePAM,但请记住:没有PAM,没有密钥就无法登录。
参考:https : //groups.google.com/forum/?fromgroups=#!topic/ comp.security.ssh/ wExY8lWlG-c
我认为,当您登录时,ubuntu会执行以下一个或多个文件:
/etc/bash.bashrc
~/.bash_profile
~/.bashrc
您可以查看其中包含的内容,甚至可以尝试执行它们以查看所需的时间。
从已经登录的连接(或其他控制台)登录到服务器时,您可能想尝试监视正在运行的进程。有机会发现当时哪个进程最活跃或使用最多的CPU。
下面是一种可能的方法:
top那里看看会发生什么。请注意,如果延迟不是由某些占用大量CPU的计算引起的,则不会发现任何异常情况。在这种情况下,问题可能是受I / O约束(正在等待某些磁盘读/写或网络响应)。