Como manter a conexão SSH ativa?

11

Como posso manter uma conexão SSH ativa sem usá-la ativamente. Quando uso, funciona bem, mas quando não uso por alguns minutos, ele se desconecta. Como recebo um email cada vez que me conecto, como posso manter a sessão SSH ativa?

Nota: No meu .ssh/configarquivo, no topo eu tenho

Host *
ServerAliveInterval 3

mas não parece funcionar.

NerdOfLinux
fonte
Qual cliente ssh? 3 é muito curto, use um intervalo de 60. Você também pode colocar isso em / etc / ssh / ssh_config se tiver acesso root.
Pantera
*deveriam ser todos eles, não deveriam?
NerdOfLinux
Eu não acho que funciona com PuTTY
Panther
1
Verifique o seguinte URL para obter instruções Putty a2hosting.com/kb/getting-started-guide/accessing-your-account/...
Haitham A. El-Ghareeb

Respostas:

10

Você precisa especificar a quantidade de tentativas e o intervalo de envio de um pacote ao servidor. Você pode colocar as seguintes linhas no seu .ssh/configarquivo:

Host examplehost
    Hostname examplehost.com
    ServerAliveInterval 180
    ServerAliveCountMax 2

Isso enviará um pacote ao servidor a cada 180 segundos (3 minutos) e tentará duas vezes antes de fechar a conexão após não receber resposta do cliente.

Peshmerge
fonte
2
Esqueci completamente o ServerAliveCountMaxque provavelmente foi o que resolveu meu problema.
NerdOfLinux 16/07
4

Nos sistemas operacionais Linux e Apple Mac OS X, o ~/.ssh/configarquivo permite especificar muitas configurações de SSH, incluindo aquelas que mantêm ativa uma conexão SSH. Para fazer isso, execute as seguintes etapas:

  1. Use o seu editor de texto preferido para abrir o ~/.ssh/configarquivo no seu computador local. Nota: Se o .sshdiretório ou o arquivo de configuração não existir, crie-os.

  2. Adicione as seguintes linhas ao arquivo de configuração. O valor do host pode ser qualquer nome que você desejar; é simplesmente um rótulo para as outras configurações. O valor Hostname é o host remoto que você deseja acessar; substitua example.com pelo seu nome de domínio. Substitua o nome de usuário pelo seu próprio nome de usuário da conta de hospedagem:


    Host example
        Hostname example.com
        Port 7822
        User username
        ServerAliveInterval 240
        ServerAliveCountMax 2

Com essa configuração, o cliente SSH envia um pacote ao servidor a cada 240 segundos (4 minutos) para manter a conexão ativa. Se o cliente não receber uma resposta após duas tentativas (conforme especificado pela configuração ServerAliveCountMax), fechará a conexão.

Para obter informações detalhadas sobre todas as definições de configuração SSH disponíveis, digite man ssh_configna linha de comandos.

  1. Salve as alterações no arquivo de configuração.

  2. Conecte-se à sua conta usando SSH. Para fazer isso, basta digitar ssh example, em que example representa o valor Host especificado na etapa 2.

Monitore a conexão. Se ainda cair, diminua gradualmente a ServerAliveIntervalconfiguração no arquivo de configuração até que a conexão esteja estável.

Verifique o seguinte URL para obter mais detalhes https://www.a2hosting.com/kb/getting-started-guide/accessing-your-account/keeping-ssh-connections-alive

Haitham A. El-Ghareeb
fonte
4

Você também pode adicionar esses argumentos no comando ssh, assim ...

ssh -o ServerAliveInterval=180 -o ServerAliveCountMax=2 $HOST
trueCamelType
fonte