
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 intermitentes de rede, então posso alterar as configurações para que ele sobreviva por algumas horas ou dias? Caso contrário, existe algo semelhante ao SSH que possa fazer isso?
Entendo que posso configurar o SSH para reconectar-se automaticamente quando a rede estiver disponível novamente. Mas isso não é o ideal porque quero que minha sessão de login esteja exatamente no mesmo lugar onde estava antes do laptop entrar no modo de suspensão (mesmo que esteja no meio da digitação de algo na linha de comando do shell).
Eu entendo que existem outrossoluções alternativas, mas eu esperava que houvesse uma maneira de evitar a perda da sessão do shell.
Responder1
Uma conexão TCP deve ser capaz de sobreviver à desconexão, mas alguns firewalls excessivamente zelosos podem interromper conexões ociosas e não sobreviverão à mudança do seu endereço IP, se isso acontecer.
Para sessões interativas, eu executariaMosh. Ele implementa uma conexão de terminal semelhante a SSH sobre UDP, suporta a reconexão de outro endereço IP, se necessário, e possui alguns recursos para suportar conexões instáveis.
Independentemente de você decidir usar SSH ou Mosh, usetelaoutmuxtambém para tornar sua sessão independente da conexão.
Responder2
screen
ou tmux
são definitivamente o caminho a percorrer. A ssh
conexão então se torna apenas um meio para um fim e não importa mais (dentro do razoável) quantas vezes ela cai quando ociosa.
Se você está preocupado em lembrar de iniciar screen
ao fazer login no servidor remoto, não seria tão difícil fazer com que uma sessão interativa ingresse automaticamente em uma sessão existente screen
ou inicie uma nova, se ainda não houver uma em execução.
Responder3
Rochas(Reliable SOCKetS) é um wrapper para programas que fazem conexões TCP de clientes, que detecta quando a conexão TCP falha e reconecta automaticamente o cliente, mesmo que ele seja movido para uma rede diferente. Foi descrito no jornalConexões de rede confiáveise édisponível para download. Não tem manutenção, mas usa interfaces bastante estáveis, por isso ainda deve funcionar hoje. Ele usa pré-carregamento de biblioteca ( LD_PRELOAD
) para ocultar funções de biblioteca padrão, portanto, funciona apenas com executáveis vinculados dinamicamente. Você apenas executa como
rocks ssh …
Rocks lida com a mobilidade do cliente, não com a mobilidade do servidor. Se o servidor for movido, você pode complementá-lo com umMEIASprocuração.
Para uma sessão interativa, uma boa alternativa éMosh. Ele foi projetado para conexões não confiáveis e oferece suporte à mobilidade do cliente. Mosh perde dados se a conexão não for confiável, portanto só pode ser usado para sessões interativas.
Uma alternativa ao Mosh se você tiver uma conexão confiável, mas que muda ocasionalmente, éautosshpara reconectar automaticamente etelaoutmuxrodando no servidor. A sessão screen/tmux permanece no servidor mesmo se o cliente for desconectado, e o autossh se reconecta automaticamente se a conexão cair.