Antes de começar, verifique se a hora do sistema nas duas extremidades está sincronizada. Isso ajuda na comparação depois.
Execute tcpdump
nas duas extremidades, filtrado para a porta TCP 22. Você menciona que o cliente está usando o PuTTY, portanto, assumo o Windows. Você pode obter o wireshark para Windows e ele tem um recurso de captura que você pode usar no lugar de tcpdump
.
Usando tcpdump
, você faria isso com algo como: tcpdump -w/tmp/ssh.pcap -s0 -ieth0 port 22
. Com o wireshark no Windows, você pode configurar uma captura filtrada para a porta 22 usando a GUI e, em seguida, salvar a captura em disco.
Agora abra ambas as capturas com o wireshark. Encontre o ponto de desconexão. Você deve ser capaz de ver qual extremidade iniciou o desligamento da conexão (onde uma conexão FIN ou RST chega primeiro?)
Você também pode verificar se um host de terceiros (por exemplo, um roteador ou um ISP) está interferindo na conexão. Você identificará isso se identificar um pacote chegando que nunca foi enviado do outro lado, por exemplo. Se isso estiver acontecendo, é provável que seja um pacote RST.