Sessão semelhante a SSH que sobrevive à desconexão da rede física

4

Eu quero que minha sessão de login SSH permaneça conectada depois que o computador entrar no modo de suspensão e acordar. Pelo que entendi o TCP pode sobreviver a problemas de rede intermitentes, então posso alterar as configurações para que ele possa sobreviver por algumas horas ou dias? Se não, há algo semelhante ao SSH que pode fazer isso?

Entendo que posso configurar o SSH para reconectar-se automaticamente quando a rede ficar disponível novamente. Mas isso não é ideal porque quero que minha sessão de login esteja exatamente no mesmo lugar em que estava antes de o laptop entrar no modo de suspensão (mesmo que esteja na metade da digitação de algo na linha de comando do shell).

Eu entendo que existem outras soluções alternativas , mas eu estava esperando que houvesse uma maneira de evitar perder a sessão de shell em primeiro lugar.

    
por max 20.10.2016 / 22:32

3 respostas

2

screen ou tmux são definitivamente o caminho a percorrer. A conexão ssh então se torna apenas um meio para um fim e não importa mais (dentro da razão) hora, muitas vezes cai quando ocioso.

Se você se incomoda em ter que lembrar de iniciar screen ao efetuar login no servidor remoto, não seria tão difícil ter uma sessão interativa que se associa automaticamente a um screen existente ou iniciar um novo se não havia um já em funcionamento.

    
por 20.10.2016 / 23:17
2

Uma conexão TCP deve ser capaz de sobreviver à desconexão, mas alguns firewalls com excesso de zelo podem perder conexões ociosas e não sobreviverão à mudança de endereço IP, se isso puder acontecer.

Para sessões interativas, eu executaria Mosh . Ele implementa uma conexão de terminal semelhante a SSH em UDP, oferece suporte à reconexão de outro endereço IP, se necessário, e possui alguns recursos para oferecer suporte a conexões fragmentadas.

Independentemente de você decidir usar SSH ou Mosh, use a tela ou tmux também para tornar sua sessão independente da conexão.

    
por 20.10.2016 / 23:52
1

Rocks (Confiável sOCKetS) é um wrapper para programas que fazem conexões TCP de cliente, que detecta quando a conexão TCP falha e reconecta automaticamente o cliente, mesmo se ele for movido para uma rede diferente. Foi descrito no documento Conexões de Rede Confiáveis e é disponível para download . Não é mantido, mas usa interfaces razoavelmente estáveis, por isso ainda deve funcionar hoje. Ele usa o pré-carregamento da biblioteca ( LD_PRELOAD ) para sombrear funções de biblioteca padrão, portanto, ele funciona apenas com executáveis vinculados dinamicamente. Você acabou de executá-lo como

rocks ssh …

O Rocks lida com a mobilidade do cliente, não com a mobilidade do servidor. Se o servidor se mover, você pode querer complementá-lo com um proxy SOCKS .

Para uma sessão interativa, uma boa alternativa é Mosh . Ele é projetado para conexões não confiáveis e suporta a mobilidade do cliente. Mosh perde dados se a conexão não for confiável, por isso só é utilizável para sessões interativas.

Uma alternativa para Mosh se você tiver uma conexão mais confiável, mas ocasionalmente em movimento é autossh para reconectar automaticamente e tela ou tmux em execução no servidor. A sessão screen / tmux permanece no servidor, mesmo se o cliente desconectar, e o auto-retorno se reconecta automaticamente se a conexão cair.

    
por 22.10.2016 / 02:45