最近遇到一个ssh工具运行一段时间就会停止工作的问题。
stops working after running some time.
原本觉得可能并不是一个很严重的问题,但是debug两天没有解决,故此记录作为经验总结,为以后遇到此类问题的朋友提供借鉴。
2021-08-30:
问题只在客户那里复现,本地没有复现环境。所以只能通过客户提供的信息进行分析总结:
Issue Situation:
SSH from PC side connect to Linux GVM,will stop working after 5~25mins (some longer,some shorter) Means pc is ssh client, LV GVM is ssh server.
首先,通过各种验证,发现底层网络是通的。问题应该出现在sshd 工具本身。
1.调查ssh的配置文件如下
vi /etc/pam.d/systemd-user
This file is part of systemd.
#Used by systemd --user instances.
account required pam_unix.so
session required pam_loginuid.so
session optional pam_keyinit.so force revoke
session optional pam_systemd.so
vi /etc/ssh/sshd_config
$OpenBSD: sshd_config,v 1.102 2018/02/16 02:32:40 djm Exp $
#PermitUserEnvironment no
Compression no
ClientAliveInterval 15
ClientAliveCountMax 4
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
2. 在pc尝试启动两种ssh连接,运行测试。
A: 是在脚本里调用以下命令启动ssh, 执行操作,断开,在启动,断开...循环....
ssh root@xx.xx.xx.xx
B:是通过手动从putty tool 建立ssh connection.
A.B两种方式同时运行,在A运行300多次之后,不能创建新的连接,查看linux侧,在问题发生的时候,sshd 已经被启动了十几次。通过kill systemctl 命令等不能杀死这多个ssh 服务。
而此时,B 种方式创建的ssh 连接,仍能正常工作。
行为看上去比较奇怪,仍在调试中,也希望对open-ssh 熟悉的工程师们给与宝贵建议。