Quando sou transferido para um dos nossos servidores de escritório (que executa o Fedora 10) em casa, minha sessão expira após um período bastante curto de atividade (5 minutos ou mais). Eu tentei usar TcpKeepAlive
no lado do cliente, sem efeito.
O que não entendo é que, se estou no escritório da LAN da empresa, posso deixar uma sessão inativa o dia todo sem que o tempo limite se esgote, de modo que o comportamento parece depender da minha localização.
Alguma idéia de por que isso está acontecendo e como evitar tempos limite quando não estou na LAN? Estou usando o cliente Terminal no Mac OSX, se isso ajudar.
ATUALIZAÇÃO - A sugestão de Dave Drager de usar o ServerAliveInterval
conjunto como diferente de zero TcpKeepAlive=no
funcionou para mim. Em relação a algumas das outras respostas, as ClientAlive
configurações ... não são aceitas pelo cliente SSH do Mac OSX.
Provavelmente porque, quando você está se conectando em casa, passa por um firewall que fecha a sessão TCP após um pequeno período de tempo. Mas TcpKeepAlive deve evitar isso. Você ativou o TcpKeepAlive no lado do cliente ou no servidor?
fonte
Eu recebo isso o tempo todo na minha conexão Comcast. O problema é que o intervalo de manutenção do seu cliente SSH é muito longo para o tempo limite configurado no caminho da rede. Se você estiver no Linux, poderá modificar os valores
ServerAliveInterval
eServerAliveCounter
para serem menores que os padrões. Este valor é definido em segundos. O arquivo de configuração em todo o sistema é encontrado (geralmente) em/etc/ssh/ssh_config
. Definir esses dois ANDTcpKeepAlive
deve ajudar a manter a conexão.fonte
Como diz o raio, alguns firewalls cheios de estado 'esquecem' uma conexão após um tempo (geralmente configurável) e não permitem mais comunicação para a conexão; eles esperam que a conexão comece com um TCP SYN (refiro-me à sua comunicação SSH aqui).
Existe outra possibilidade. O caminho da rede entre sua casa e escritório pode ter perdas (do tipo pacote). Ao tentar digitar no cliente SSH, se o seu link parar por um tempo, o cliente poderá desistir e falhar.
A configuração keepalive no cliente manipulará o primeiro caso aqui, mas não poderá ajudar no segundo caso. O firewall normalmente fica no perímetro do escritório e, portanto, pode ser configurável. Isso também ajudaria no primeiro ponto.
Para verificar se você está tendo perdas intermitentes de link, você pode manter um 'ping' ativo em segundo plano a partir da sua máquina cliente.
fonte
Você também pode adicionar as configurações sugeridas por outras pessoas como padrão no seu
~/.ssh/config
arquivo, para não precisar transmiti-lasssh
sempre que iniciar uma conexão:nano ~/.ssh/config
e adicione:fonte