Por que demora tanto para o ssh decidir que houve um erro?

2

Eu uso o ssh para entrar no meu servidor. Às vezes, deixo-o conectado e saio do computador, tempo em que o computador vai para o modo de economia de energia (ou o que quer que seja chamado - a tela fica preta).

Quando eu volto e tento fazer qualquer coisa nessa janela do terminal, nada parece acontecer. Embora depois de pelo menos 10 minutos, eventualmente, diz "write failed: broken pipe".

Minha pergunta é: qual é o problema com o enorme atraso? Por que demora tanto para decidir que não pode mais se conectar ao servidor? Existe alguma maneira de reduzir esse tempo, além de apenas fechar o terminal e começar de novo?

    
por DisgruntledGoat 15.02.2013 / 00:15

2 respostas

0

Nunca encontrei uma resposta verdadeira para essa pergunta, embora, curiosamente, no Mac, o atraso do tempo limite seja muito, muito menor (talvez 30 segundos).

No entanto, descobri que você pode digitar ~. (til then period) para fechar a sessão imediatamente. Então, se o SSH não responder, apenas faça isso.

    
por DisgruntledGoat 26.08.2014 / 22:05
0

você pode depurar ssh por tipos em ssh -vvv ... Isso não só irá depurar o login, mas também debugará as sessões. Pode ficar um pouco chato quando continuamente lança a depuração no entanto. A quantidade de 'v's determina a quantidade de depuração que está ativa nas sessões (quanto mais v, mais níveis de depuração). Não estou certo de que isso ajudará a identificar o problema, mas pode ajudar a rastreá-lo. Geralmente há um tempo de permanência ativo em seu cliente ssh que enviará "pings" para informar ao servidor que você ainda está conectado aqui é onde esta variável está definida:

/etc/ssh/sshd_config 
ClientAliveInterval 30
ClientAliveCountMax 5 

Onde     ClientAliveInterval: Define um intervalo de tempo limite em segundos (30) após o qual, se nenhum dado tiver sido recebido do cliente, o sshd enviará uma mensagem através do canal criptografado para solicitar uma resposta do cliente. O padrão é 0, indicando que essas mensagens não serão enviadas ao cliente. Esta opção aplica-se apenas à versão de protocolo 2.     ClientAliveCountMax: Define o número de mensagens vivas do cliente (5) que podem ser enviadas sem que o sshd receba nenhuma mensagem do cliente. Se este limite for atingido enquanto as mensagens do cliente estiverem sendo enviadas, o sshd desconectará o cliente, encerrando a sessão.

Se você alterar essas configurações, certifique-se de reiniciar o sshd através deste comando:

/etc/init.d/ssh restart

Espero que isso ajude!

    
por JD Schmidt 15.02.2013 / 00:30