you could debug ssh by types in ssh -vvv ... This will not only debug the login but also debugs the sessions. It can get somewhat annoying when it continually throws in the debug however. The amount of 'v's determines the amount of debug which is active in the sessions (the more v's the more levels of debuging). I'm not positive this will help identify the problem but it could help track it down. Usually there is a stay alive time set in your client ssh that will send "pings" to tell the server that you are still connected here is where that variable is set:
/etc/ssh/sshd_config
ClientAliveInterval 30
ClientAliveCountMax 5
Where
ClientAliveInterval: Sets a timeout interval in seconds (30) after which if no data has been received from the client, sshd will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol version 2 only.
ClientAliveCountMax: Sets the number of client alive messages (5) which may be sent without sshd receiving any messages back from the client. If this threshold is reached while client alive messages are being sent, sshd will disconnect the client, terminating the session.
If you alter those settings make sure to restart sshd via this command:
/etc/init.d/ssh restart
Hope this helps!