O que está causando o famoso “broken pipe” quando uso o tmux em uma sessão SSH?

1

Cenário1: I SSH do meu empregador (cliente OSX Yosemite SSH) para o meu servidor doméstico (estável Debian) e (re) conectar-me a uma sessão tmux. Se eu deixar o terminal inativo por um tempo (~ 20 minutos), parece que a conexão de rede foi interrompida por muito tempo com o famoso erro SSH: "pipe quebrado". Se eu fizer o login novamente no tmux, ele se comportará como esperado: a sessão ainda está ativa.

Cenário2: I SSH do meu empregador para minha caixa inicial. Agora eu faço as coisas que costumo fazer, mas desta vez não em uma sessão do tmux. Agora posso deixar o terminal inativo por horas e horas, ele não morre.

Cenário 3: I SSH do meu próprio segmento de rede doméstica para o mesmo servidor e conecto a uma sessão do tmux. Agora obtenho o comportamento esperado. O terminal não perde a conexão após um período de inatividade, com o nosso sem usar o tmux.

Eu tentei fazer a minha pergunta no Google, mas o problema é que obtenho respostas para a pergunta errada: P: Eu uso o SSH para um comando de longa duração, como posso me reconectar se eu tiver um cano quebrado? A: Você já ouviu falar do tmux? Sim, eu tenho ... . Mas eu não ouvi falar de canos quebrados sendo causados pelo tmux.

Eu também fiz a pergunta no irc, mas não recebi resposta.

    
por buco 29.01.2015 / 18:15

2 respostas

1

Ative os keepalives de SSH globalmente em / etc / ssh_config ou no seu diretório home ~ / .ssh / config

KeepAlive yes
ServerAliveInterval 60

Antes de encontrar essa opção openssh, eu executaria o "top -d 60" para manter a conexão ativa.

    
por 30.01.2015 / 06:05
0

Suponho que isso tenha a ver com 'manter a sessão viva', também conhecida como 'pings'. Há opções de configuração para esse tipo de coisa. Tmux não se importa em ser desconectado e -idealmente - você não deve deixar conexões não utilizadas abertas; isso é uma má etiqueta de rede; -)

    
por 29.01.2015 / 18:36