eu recomendo que você use o comando traceroute. No Windows, é encurtado para 'tracert'
por exemplo, abra o prompt de comando e digite o seguinte (-d significa que não faça pesquisas de DNS):
tracert -d <your server ip address>
isto lhe dará uma lista de todos os saltos que um pacote TCP atinge ao longo do caminho para o alvo. O último salto bem sucedido antes de você obter um tempo limite lhe dará uma idéia de onde a internet está falhando. Pode ser o seu wifi, o seu ISP ou qualquer outra coisa.
Outra idéia é que às vezes a conexão SSH pode ser descartada porque o sistema acha que a conexão está inativa e está ok para descartá-la. Isso também pode ser uma configuração no seu modem. Mas eu acho que traceroute lhe dará uma boa idéia do ponto de falha. Se você nunca pegar uma falha com traceroute, eu diria que talvez algo esteja ativamente soltando sua conexão ociosa. Veja as configurações do tipo Keep-Alive no seu modem Wifi Router / DSL, etc.
Mas publique suas descobertas e vamos ver se podemos ajudá-lo a descobrir isso.
boa sorte.