Linux服务器断开会话时,OpenSSH会记录什么?

我真的很希望sshd能记录下一行话,说明会话已经结束,是什么用户(从哪里来),以及结束会话的原因是什么。你可能会认为它已经这样做了,但很遗憾没有。
您关心SSH会话断开的原因可能会有很多,包括您正试图排除潜在的网络或防火墙问题,您想看看人们是否从他们的SSH会话中突然断开,或者会话是否正常结束。
在许多会话中,sshd会记录一些东西,比如。

你也可以看到'disconnected by server request')。
这已经是不太理想的了,因为用户是在与名义上的断开原因不同的行中被提及的。此外,前两条消息记录的PID不知从何而来,它不在任何其他会话的日志行中,在第三行中找到了PID。
然而,一个可疑的系统管理员可能会看到关于 "用户断开连接 "的消息,并想知道当用户的TCP连接只是因为某些原因被切断时,会发生什么,比如他们的机器突然关闭。至少有些时候,你得到的是比较模糊的信息。
记录的第二个PID,这里的PID 14719,与其他早期的日志行相关联,给你提供了远程IP。第一个PID,PID 14867,之前或之后从未见过(除了PID滚动)。
然而,sshd可以记录更少的日志。假设有什么事情突然终止了用户的SSH客户端程序,或者导致TCP连接产生TCP重置(RST)。那么你将只得到日志行。

TCP重置可能产生的一个原因是你的服务器和登录者之间的一些防火墙上的状态表条目超时。许多家庭路由器也是NAT防火墙,通常有小的状态表,并积极地将其中的条目超时。

所有这些缺乏明确的日志记录的力量迫使你进入遗漏的推理。如果sshd记录了一个 "Received disconnect "和一个 "Disconnected "的消息,那么这个会话是以一种有序的方式断开的,你可以从具体的拖车中得到原因。即使在这里,在最好的情况下,你也需要关联三条日志线来恢复会话的所有信息。如果没有来自sshd的关于会话结束的消息,但在PAM消息之前有一个 "超时 "或其他记录的sshd错误,那么TCP连接很可能已经丢失。最后,如果除了 PAM 消息之外没有其他信息,那么会话结束的原因很可能是 TCP 连接的突然终止(可能是客户端死亡导致 TCP 连接关闭,也可能是防火墙决定重置它)。
这一切中的一个亮点是,你总是能收到PAM消息(据我所知),而且它总是有登录名。