você pode depurar ssh por tipos em ssh -vvv ... Isso não só irá depurar o login, mas também debugará as sessões. Pode ficar um pouco chato quando continuamente lança a depuração no entanto. A quantidade de 'v's determina a quantidade de depuração que está ativa nas sessões (quanto mais v, mais níveis de depuração). Não estou certo de que isso ajudará a identificar o problema, mas pode ajudar a rastreá-lo. Geralmente há um tempo de permanência ativo em seu cliente ssh que enviará "pings" para informar ao servidor que você ainda está conectado aqui é onde esta variável está definida:
/etc/ssh/sshd_config
ClientAliveInterval 30
ClientAliveCountMax 5
Onde
ClientAliveInterval: Define um intervalo de tempo limite em segundos (30) após o qual, se nenhum dado tiver sido recebido do cliente, o sshd enviará uma mensagem através do canal criptografado para solicitar uma resposta do cliente. O padrão é 0, indicando que essas mensagens não serão enviadas ao cliente. Esta opção aplica-se apenas à versão de protocolo 2.
ClientAliveCountMax: Define o número de mensagens vivas do cliente (5) que podem ser enviadas sem que o sshd receba nenhuma mensagem do cliente. Se este limite for atingido enquanto as mensagens do cliente estiverem sendo enviadas, o sshd desconectará o cliente, encerrando a sessão.
Se você alterar essas configurações, certifique-se de reiniciar o sshd através deste comando:
/etc/init.d/ssh restart
Espero que isso ajude!