快杰云主机 SSH 登录缓慢的排查和解决

本文详细介绍了UCloud快杰云主机在使用高内核Ubuntu18.04镜像时,首次SSH登录缓慢的问题。问题根源在于Linux内核随机数熵池初始化慢,以及libssl 1.1.1版本的bug。经过排查,通过升级内核并启用CONFIG_RANDOM_TRUST_CPU选项解决了问题,确保了云主机的安全性和用户体验。

快杰云主机是 UCloud 推出的具备优秀性能与极高性价比的新一代主机,网络最高可达 1000 万 PPS,存储最高可达 120 万 IOPS。为了提升产品综合表现,Host 内核、KVM 和 Guest 内核等做了大量调优。“高内核 Ubuntu18.04” 镜像就是其中一款经优化的云主机镜像,集成了官方 linux 5.0.1 主线版本内核。


今年 7 月,有一位用户反馈,使用该镜像创建出的快杰云主机每次启动时,第一次 SSH 登录会很慢,有时候需几十秒甚至几分钟才能登录成功,影响了使用体验。


经过排查,定位到是 Linux 内核随机数熵池初始化慢的原因,且在多个条件组合下才会触发。更深入调查则发现因为内核 bug,凡使用了 libssl 1.1.1 的进程(如开启了 https 的 nginx)都有类似问题,会对系统安全产生不少潜在影响。


最终我们通过升级自主维护的内核,很快妥善修复了该问题,保证了快杰云主机的体验和安全性。

本文对排查过程加以梳理。

初步排查

该问题只在单个用户上出现过,且只影响启动后的首次 SSH 登录,一旦登录成功便恢复正常。现场捕获不易,不过我们设法将其复现。
ssh -v

打开 ssh 用户端的冗余日志模式尝试登录问题主机,发现总是会卡在 “debug1: pledge: network” 处,根据提示,sshd 已经完成了用户的身份认证过程。


可以看出,问题应当是发生在身份鉴定刚完成后,由此判断,问题有较大可能是发生在 /etc/pam.d/sshd 定义的 PAM 过程中。
motd

检视 /etc/pam.d/sshd 文件,根据现象以及直觉,决定尝试先屏蔽几段配置,其中就包括 motd 行,motd (message of the day) 是 Ubuntu 登录后呈现给用户看到的部分 banner 内容。随后重启主机,发现 ssh 登录变快,不再卡住。


查阅资料可知,motd 机制下,pam_motd.so 会依次执行 /etc/update-motd.d/ 目录下的全部脚本,而这些脚本的输出则会被拼凑输出到文件 /run/motd.dynamic 中,最终呈现在 banner 中。


因此,怀疑是这些脚本的执行过程中产生的卡顿,阅读这些脚本,执行断点 echo 调试,最后发现,位于”50-landscape-sysinfo”脚本中的 “/usr/bin/landscape-sysinfo” 命令执行时就会造成卡顿。


landscape-sysinfo

该命令仅仅是一个用来搜集显示 bann

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值