SSH 在启动会话时缓慢

SSH 在启动会话时缓慢

对于我的一台服务器来说,通过 SSH 启动交互式 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 [email protected]
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.

答案1

在一个非常相似的情况下,它是 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)

答案2

pam_krb5.so 配置为获取不存在的 shell 的 AFS 令牌,该 shell 有 30 秒的超时时间,会停止使用该模块的任何身份验证,而不仅仅是 SSH。删除它,身份验证会发生得更快。

答案3

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

答案4

我有下一个案例和解决方案。通过 SSH 登录出现问题 - 会话打开时间过长。与须藤苏命令也会卡住 20-40 秒。解决方案

systemctl disable motd
systemctl stop motd

真正的问题出在我们公司的 DNS 上。

相关内容