Impedir o tempo limite da conexão SSH / tubulação quebrada

Como evitar que uma sessão SSH se desconecte de um servidor. Tempo limite da conexão esgotado ou tubo quebrado

Tanto como um usuário de Windows bem como por Mac (nos últimos 10 anos) passei muito tempo em Conexões SSH para servidores web, servidores de e-mail, nuvem e outros pacotes de backup. A distribuição preferida do Linux é, sem dúvida, o CentOS.

Uma das coisas mais estressantes para administradores de servidor é interromper conexões SSH. De repente, ao apertar o Putty ou Terminal (na maioria das vezes é um problema de conexão local), ou depois de um tempo de "inativo”- o período de tempo em que não interage com o servidor remoto por meio da sessão SSH.

Se você estiver usando o Mac e usar a ferramenta Terminal para conexão remota via SSH, então certamente após um período de inatividade você foi desconectado com a mensagem: “client_loop: enviar desconexão: tubo quebrado”. Eu dei a solução em o artigo aqui, em que eu disse que pode ser adicionado em "/etc/ssh/ssh_config" a linha:

Host *
ServerAliveInterval 120

A solução acima é válida para usuários de Mace, honestamente, ser as últimas atualizações de macOS Não me importo restart alterações feitas no arquivo "ssh_config", E o problema com a desconexão de uma sessão ociosa retorna.

Uma solução pela qual podemos evitar a desconexão de uma sessão SSH à distância definida por terminal (macOS) ou massa de vidraceiro (Windows), é como além de “ServerAliveInterval”De nosso computador, para determinar o servidor remoto para se comunicar periodicamente com o aplicativo / cliente SSH.
É por isso que temos que colocar a diretiva "ClientAliveInterval"Em"sshd_config”No servidor ao qual estamos nos conectando.

Impedir o tempo limite da conexão SSH / tubulação quebrada (dicas ssh_config)

1. Conectamos ao servidor que queremos ativar e definimos um intervalo de tempo para "ClientAliveInternal". Abrimos SSH em Putty, Terminal ou outro utilitário semelhante e autenticamos com o usuário root.

ssh root@server.hostname

2. Execute a linha de comando para pesquisar o arquivo “sshd_config” se “ClientAliveInterval” estiver ativo e o período de tempo definido.

sudo grep "ClientAliveInterval" /etc/ssh/sshd_config

Em nosso cenário, "ClientAliveInterval" está desabilitado e o valor do intervalo de tempo é zero.

[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]# 

A hashtag "#"Colocado na frente de uma linha, cancela-o. Ela está inativa.

3. Abrimos com o editor "nano"Ou"vim"Arquivo"sshd_config“. Eu prefiro "nano".

sudo nano /etc/ssh/sshd_config

4. Exclua “#"Na frente da linha"ClientAliveInterval”E definir um número de segundos: 60, 120 ...

ClientAliveInterval 120
ClientAliveCountMax 10

5. Salve as alterações e restartEu tenho o serviço "sshd".

sudo systemctl restart sshd

ClientAliveInterval : É o intervalo de tempo em segundos que o servidor envia um pacote de dados nulo ao cliente / aplicativo através do qual estamos conectados ao servidor. Esta prática manterá a conexão viva / ativa.

ClientAliveCountMax : Clientes SSH que não respondem em 10 ciclos de 120 segundos (definido por “ClientAliveInterval”) a conexão será interrompida. Ou seja, após 20 minutos em que o cliente SSH não respondeu aos pacotes nulos enviados pelo servidor.

Com essas mudanças, a conexão SSH ficará mais estável e permanecerá tão segura.

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

Total
0
ações
Artigo Anterior

Como podemos ver o que os usuários estão procurando em um site WordPress ou loja online WooCommerce (consulta de caixa de pesquisa)

Próximo Artigo

Não consegue mais ouvir o som de "Esvaziar lixeira"? [Como consertar]