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

12

Às vezes, recebo esse erro quando tento ssh para 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 minuto e 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 Terminal, o compartilhamento de conexão também estará ok. Como posso consertar isso? Não é terrível, mas é irritante.

David Xia
fonte
Você pode fazer login em outras máquinas remotas a partir do seu macbook air? Outras máquinas podem fazer login em [email protected]?
Jessh

Respostas:

14

Você ControlPersistativou. Meu palpite é que o seguinte acontece:

  1. Você tem conexão com example.com
  2. Logout, mas como ControlPersistestá habilitada, a sessão é mantida aberta para conexões futuras.
  3. Algo dá errado com sua conexão de rede e, portanto, interrupções persistentes na conexão.
  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, eu recomendo usar o login de chave pública, se possível. Você ainda pode ter uma senha para sua chave pública, mas a chave pública impede efetivamente a força bruta de sua senha na conexão SSH.

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

Olli
fonte