ssh imediatamente desconecta “Write failed: broken pipe”

3

Quando tento fazer login em uma máquina remota via ssh, eu imediatamente me desconecto com "Write failed: broken pipe". Já tentei fazer login via mosh e o cliente mosh congela.

Eu tentei pesquisar e as únicas respostas que posso encontrar estão relacionadas a tempos limite (por exemplo, esta questão de troca de pilha Unix ). Tenho certeza de que não é um problema relacionado a tempo limite desde que eu não fiz alterações de configuração pessoal desde a noite passada (quando foi o último trabalho) e outros usuários são capazes de fazer o login bem.

A execução de ssh com -vvv (logs muito muito detalhados) não revelou nada de útil.

Eu já resolvi meu problema específico (veja minha resposta abaixo), mas fiquei me perguntando que outros problemas podem causar o problema (ssh desconectando imediatamente afirmando apenas "Falha na gravação: cano quebrado")?

Pergunto-me ainda se o sshd / mosh / etc poderia relatar a impossibilidade de gerar uma sessão para ajudar a diagnosticar problemas?

    
por inetknght 14.01.2015 / 17:29

2 respostas

1

Então, no meu caso específico, eu deixei um screen open running gdb anexado a um processo tentando reproduzir um problema que um cliente estava relacionado ao nosso produto gerando muitos threads. Bem, aparentemente, o problema foi reproduzido durante a noite e meu usuário atingiu o limite de thread do usuário do sistema.

Portanto, o sshd não pôde gerar um novo processo no meu usuário devido ao processo e ao limite do encadeamento. Em última análise, o que tivemos de fazer foi iniciar sessão com um utilizador diferente e eliminar o meu screen , gdb e o processo a ser depurado. Isso liberou o processo e os recursos de thread, permitindo que eu finalmente reconectasse.

    
por 14.01.2015 / 17:29
-1

Outra solução é detalhada aqui: link

Comecei com o mesmo problema e durante a investigação tive outro usuário tentando su como meu usuário. Ele recebeu o erro que me levou ao link acima (não é possível definir o ID do usuário: Recurso temporariamente indisponível). Na verdade, eu estava acima do limite permitido de threads para meu usuário, e aumentar esse limite permitiu que eu fizesse login novamente.

Basicamente, execute isso em seu usuário (este é o número atual de encadeamentos ativos para esse usuário):

ps -u testuser -L | wc -l

Se o resultado for maior que qualquer outro limite definido em /etc/security/limits.d/90-nproc.conf (o padrão é 1024) para esse usuário, você precisará aumentá-lo . Você precisará fazer isso com outro usuário que ainda não tenha excedido seu limite (ou de alguma forma matar alguns dos tópicos para poder fazer o login).

Para aumentá-lo, basta adicionar uma linha semelhante à existente, mas específica para seu usuário:

testuser   soft    nproc     2048

Eu sei que é uma pergunta antiga, mas isso pode ajudar as pessoas que têm esse problema.

    
por 02.08.2017 / 15:33

Tags