Erro de compartilhamento de conexão SSH do Terminal do Mac OS X Lion

10

Às vezes, recebo esse erro quando tento fazer o ssh em um host remoto:

mux_client_request_session: read from master failed: Broken pipe

Estou usando o MacBook Air OS X Lion com isso em ~ / .ssh / config:

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r

ControlPersist 4h

ForwardAgent yes

Host [ex]
    HostName [example.com]
    User [somedude]

O erro acima acontece quando eu faço:

ssh ex

O terminal trava por ~ 1 min e depois exibe:

mux_client_request_session: read from master failed: Broken pipe
[email protected]'s password:

Eu digito minha senha e está tudo bem. E se eu abrir outra guia do Terminal, o compartilhamento de conexão também está ok. Como posso consertar isso? Não é terrível, mas é chato.

    
por David Xia 26.12.2011 / 05:14

1 resposta

12

Você tem ControlPersist ativado. Meu palpite é que acontece o seguinte:

  1. Você tem conexão com example.com
  2. Logout, mas como ControlPersist está ativado, a sessão é mantida aberta para futuras conexões.
  3. Algo está errado com sua conexão de rede e, portanto, com quebras de conexão persistentes.
  4. Quando você executa ssh [email protected] novamente, ele tenta reutilizar a conexão da etapa 2 e abre uma nova conexão após o tempo limite.

Nenhuma opção separada para esse tempo limite está disponível, de acordo com man ssh_config . Para evitar isso, não use ControlPersist . Além disso, recomendo usar o login de chave pública, se possível. Você ainda pode ter a frase secreta para sua chave pública, mas a chave pública impede efetivamente a força bruta de sua senha pela conexão SSH.

Além disso, você não deve armazenar arquivos de controle em /tmp . Aqueles devem / devem ser protegidos e, por exemplo, ~/.ssh/master/ssh_mux_%h_%p_%r é uma localização muito melhor. Claro, se você é o único usuário do seu laptop (?), Isso não é um problema muito grande.

    
por 30.01.2014 / 15:49