Quando você efetua login na máquina remota, o sshd ali aloca um pseudo-terminal e inicia seu shell de login. Quaisquer processos iniciados, em segundo plano ou em primeiro plano, são processos filhos desse shell. (Leia "fork", "parent process" e "child process"; use o comando "pstree" para ver o estado do sistema).
Se você desconectar, por exemplo, fechando seu cliente, o sshd fechará o pseudo-terminal. Isto irá (indiretamente, ler em "terminal de controle" e "líder de sessão") terminar o processo de shell, o que faz com que seus filhos terminem ou, porque seu pai agora está desaparecido, seja reparado em init . (Leia o "sinal HUP" - deve estar em qualquer um dos materiais do terminal de controle que você encontrar - e o comando nohup ).
Quando você se conecta novamente, o sshd aloca um novo pseudo-terminal e inicia uma nova instância do seu shell de login. Não existe nenhum mecanismo para obter os processos anteriormente em execução - assumindo que eles ainda estão sendo executados - anexados a este shell (se houvesse, cada programa precisaria saber como lidar com processos filhos aparecendo espontaneamente que poderiam compartilhar o padrão entrada / saída e assim por diante; um "shell" é um processo especial apenas para você, o usuário, não no que diz respeito ao sistema).
A única maneira de fazer isso é usar um programa como screen ou tmux (pode haver outros). Estes são essencialmente um processo de servidor que gerencia seus próprios pseudo-terminais com shells e qualquer outra coisa e um processo de cliente que possa exibir o conteúdo desses usuários para você e enviar sua entrada para eles; quando você se desconecta, esse processo do cliente morre, mas quando você se reconecta, pode iniciar um novo - o servidor ainda estará em execução.
(Existem algumas simplificações acima, mas isso deve ajudá-lo a entender o que realmente está acontecendo. Leia o "pseudo-terminal".)