SSH启动会话缓慢


8

对于我的一台服务器,通过SSH启动Interactive Shell的速度很慢。包括协商加密在内的所有操作都很快完成,但是随后挂起了45秒。之后,它结束了,我有了一个外壳。我如何确定它挂在哪里?我尝试清除环境并禁用所有转发,以防降低速度,但无济于事。这是我的测试命令:

env -i ssh -x -a -vvv server

这是SSH的输出:

debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
*(hangs for 45 seconds here)*
debug3: Wrote 128 bytes for a total of 3191
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.


@forcefsck我认为该帖子无关。我的初始连接速度很快,密钥可以交换,身份验证速度很快,无需像上面的帖子中那样等待密码提示。另外,我可以肯定,到此为止,所有正向和反向DNS都应完成。同样,这个问题不是像上面的帖子中那样间歇性的,而是每一次。我上面发布的详细输出仅在身份验证成功消息之后开始。我认为更多的是bash或pam会话模块启动缓慢。
penguin359'4

非交互会话也有延迟吗?当一个连接处于活动状态时启动第二个连接是否有延迟?您使用哪种身份验证方法?您的主目录是否以某种方式(远程或加密)在登录时自动挂载?pam模块可能是一个罪魁祸首,您拥有什么/etc/pam.d/sshd(或者在您的系统上被称为)?如果您有权访问服务器日志,是否有任何相关内容?
吉尔(Gilles)'所以

@Gilles是的,它似乎会影响远程命令,scp和sftp。如果您指的是两个单独的SSH连接,则两者都很慢。如果您要通过相同的控制套接字启动第二个会话,我只是尝试了一下,而且速度很快,但是我确实收到有关xauth锁定.Xauthority失败的警告。我使用从交互式键盘,基于主机的公用密钥到gssapi-keyex的任何东西。尽管速度略有不同,但身份验证始终是快速的。我的主目录在服务器本地,未加密。PAM本质上是Ubuntu默认+ pam_krb5.so安装的。
penguin359'4

您说“慢到我的一台服务器”。切入其他计算机时,它是否正常工作?这是从您的本地计算机登录的吗?本地和远程(包括版本)上的操作系统是什么?另外,从服务器到家庭计算机的切换是否正常?以另一个用户(本地和远程)身份进行切换有什么不同吗?
Faheem Mitha

Answers:


6

在非常相似的情况下,它是update-motd脚本之一。

以下是技巧:

sudo rm /etc/update-motd.d/90-updates-available

这是一个小助手,它可以测量每个脚本的时间:

$ for f in /etc/update-motd.d/*;do echo $f;time $f;done
/etc/update-motd.d/00-header            0m0.007s
/etc/update-motd.d/10-help-text         0m0.005s
/etc/update-motd.d/90-updates-available 0m49.163s
/etc/update-motd.d/91-release-upgrade   0m0.152s
/etc/update-motd.d/98-fsck-at-reboot    0m0.015s
/etc/update-motd.d/98-reboot-required   0m0.003s
(output reduced to the relevant parts)

谢谢!大多数人只是建议关闭DNS,但是我的ssh登录仍然很慢。我开始研究登录过程,您的回答将我指向/etc/update-motd.d/50-landscape-sysinfo,这似乎很慢。
Rennex

1
这确实有帮助-对我来说杀手是凶手50-landscape-sysinfo。而且,您可以简单chmod -x /etc/update-motd.d/90-updates-available地阻止它在登录时执行,而不是完全删除它。
billynoah '18

3

pam_krb5.so被配置为为不存在的外壳获取AFS令牌,该外壳具有30秒的超时,从而暂停了使用该模块(而不仅仅是SSH)的任何身份验证。删除它,身份验证会更快。


2

如果您的ssh服务器已激活反向DNS映射,则可能是延迟的原因,请VerifyReverseMapping/etc/ssh/sshd_config服务器文件中查找。


1
我以为反向DNS映射是在允许身份验证成功之前发生的,但我将对其进行测试。
penguin359

我认为您的意思是UseDNS,我在VerifyReverseMapping上收到了贬值的警告。无论如何,我都将其设置为“否”,这并没有帮助。我确实要确保我的反向映射正确无误,并且主机可以将我客户的主机名映射到A记录,然后再毫无问题地将其映射回来。
penguin359'4

0

我有同样的问题,但显然是由其他原因引起的。解决方案:

/etc/ssh/sshd_config:
#UsePAM yes

和:

sudo /etc/init.d/ssh stop;sudo /etc/init.d/ssh start;
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.