Cloud Hosting

Fale com um consultor

Por favor digite seu nome
Por favor digite seu telefone
Por favor digite um email válido
Por favor digite a mensagem
Para enviar é preciso aceitar as Políticas de Privacidade

* Campos obrigatórios

Como corrigir o erro do SSH Client_loop: send disconnect: Broken pipe

Desconectado pelo problema do SSH "Client_loop: send disconnect: Broken pipe"? Este erro ocorre devido ao tempo limite de inatividade da conexão, veja as opções para corrigi-lo.

Como corrigir o erro do SSH Client_loop: send disconnect: Broken pipe

Introdução

SSH, sigla para Secure Shell, é um protocolo de rede remota usado para se conectar de forma segura a dispositivos remotos, como servidores e dispositivos de rede, por meio de uma rede TCP/IP.

É um protocolo de rede criptográfico que fornece tecnologias de criptografia forte e hashing para garantir a comunicação entre dois dispositivos em uma rede.

O SSH usa dois métodos principais de autenticação: autenticação por senha e autenticação de chave pública. Com a autenticação por senha, um usuário fornece o endereço IP do host remoto ou o FQDN (Fully Qualified Domain Name) e a senha para autenticação.

A autenticação por chave pública usa um par de chaves SSH para autenticação, que compreende duas chaves SSH: chaves privadas e públicas.

A chave privada reside no computador do usuário e deve sempre ser mantida confidencial e segura. A chave pública é salva no host remoto ao qual um usuário se conecta. Durante a autenticação, a identidade das duas chaves é comparada e o acesso é concedido.

Ao conectar-se a um sistema remoto via SSH, você pode encontrar o erro Client_loop: send disconnect: Broken pipe.

Neste tutorial, veremos por que isso acontece e como corrigir o erro.

Erro Client_loop: send disconnect: Broken pipe

O erro é simplesmente uma mensagem de desconexão que notifica que o tempo limite de sua conexão SSH expirou.

Este é um período de inatividade durante o qual nenhum comando Linux é executado ou emitido pelo lado do cliente. Quando isso acontece, a sessão SSH é encerrada, desconectando você do servidor remoto.

A maioria dos usuários geralmente pressiona 'ENTER' ou uma tecla no teclado para evitar ter uma sessão SSH ociosa, o que causará a desconexão para o host. No entanto, isso pode ser tedioso e demorado.

Felizmente, as configurações padrão do SSH fornecem alguns parâmetros que você pode configurar para manter suas conexões SSH ativas por períodos mais longos.

Corrigir o erro do Client_loop: send disconnect: Broken pipe

Para resolver esse problema, você precisa aumentar o tempo limite da conexão SSH no cliente. Para fazer isso, modifique o arquivo de configuração padrão do SSH, que geralmente está em /etc/ssh/sshd_config.

$ sudo nano /etc/ssh/sshd_config

Certifique-se de localizar esses dois parâmetros: ClientAliveInterval e ClientAliveCountMax. Vamos ver o que eles fazem.

  • ClientAliveInterval – Este é o período de inatividade após o qual o servidor SSH envia uma mensagem de alive para o cliente remoto conectado a ele.
  • ClientAliveCountMax – Este é o número de tentativas que o servidor fará para enviar a mensagem de alive do servidor para o cliente.

Vamos definir os dois valores da seguinte forma:

ClientAliveInterval	300
ClientAliveCountMax	3

Isso significa que após os primeiros 300 segundos (5 minutos) de inatividade do cliente, o servidor enviará uma mensagem de alive para o cliente para manter a sessão SSH ativa.

Se nenhum dado ou resposta for recebida do cliente pelos próximos 300 segundos (no marco de 600 segundos), o servidor enviará outra mensagem de alive. Finalmente, após 900 segundos de inatividade do cliente, a conexão SSH será terminada ou desconectada.

Reinicie o serviço SSH

Certifique-se de salvar as alterações feitas no arquivo e, em seguida, sair. Em seguida, reinicie o daemon SSH.

$ sudo systemctl restart sshd

Solução Alternativa

Alternativamente, você pode se conectar ao seu sistema Linux cliente remoto especificando o parâmetro ServerAliveInterval em segundos (300 segundos), o que significa que sua sessão SSH está ativa por até 5 minutos.

$ ssh -o ServerAliveInterval=300 username@server_ip_address

Conclusão

Neste tutorial, demonstramos como resolver o erro Client_loop: send disconnect: Broken pipe. Como você viu, tudo o que você precisa fazer é fazer algumas alterações no arquivo de configuração do SSH.


FAQ

Pergunta e respostas frequentes sobre o conteúdo.

SSH, sigla para Secure Shell, é um protocolo de rede remota usado para se conectar de forma segura a dispositivos remotos, como servidores e dispositivos de rede, por meio de uma rede TCP/IP.

O SSH usa dois métodos principais de autenticação: autenticação por senha e autenticação de chave pública.

Com a autenticação por senha, um usuário fornece o endereço IP do host remoto ou o FQDN (Fully Qualified Domain Name) e a senha para autenticação.

A autenticação de chave pública usa um par de chaves SSH para autenticação, que compreende duas chaves SSH: chaves privadas e públicas.

O erro ocorre quando o tempo limite da conexão SSH é excedido, geralmente devido a inatividade durante a qual nenhum comando Linux é executado ou emitido pelo lado do cliente.

Para corrigir o erro, é necessário aumentar o tempo limite da conexão SSH no cliente, modificando o arquivo de configuração padrão do SSH.

ClientAliveInterval é o período de inatividade após o qual o servidor SSH envia uma mensagem de alive para o cliente remoto conectado a ele.

ClientAliveCountMax é o número de tentativas que o servidor SSH fará para enviar a mensagem de alive do servidor para o cliente.

É possível definir os valores do ClientAliveInterval e do ClientAliveCountMax no arquivo de configuração padrão do SSH, geralmente localizado em /etc/ssh/sshd_config.

Para reiniciar o daemon SSH após fazer as alterações no arquivo de configuração, você pode usar o comando sudo systemctl restart sshd.

Uma sessão SSH ociosa é um período de inatividade durante o qual nenhum comando Linux é executado ou emitido pelo lado do cliente, o que pode resultar em desconexão do servidor remoto.

Para evitar uma sessão SSH ociosa, os usuários podem pressionar 'ENTER' ou uma tecla no teclado para manter a sessão ativa.

Os parâmetros ClientAliveInterval e ClientAliveCountMax podem ser configurados para manter as conexões SSH ativas por mais tempo.

ServerAliveInterval é um parâmetro que pode ser especificado ao se conectar a um sistema Linux remoto para manter a sessão SSH ativa por até um determinado período de tempo.

Para se conectar a um sistema Linux remoto especificando o ServerAliveInterval, você pode usar o comando ssh -o ServerAliveInterval=300 username@server_ip_address.


Giancarlo Gil Ottaviani Raduan

Especialista linux, desenvolvedor web full-stack, PHP no sangue, graduando em Direito, pai da Lais e esposo da Simone


Você talvez goste destes outros tutoriais