Eu uso ssh -p8520 username@remote_host
para fazer login no servidor remoto.
Edição :
Ele está sempre conectado e funciona corretamente quando estou no local de trabalho. Infelizmente, o terminal congela em 10 a 15 minutos depois que eu conectei o servidor remoto em casa.
Não há nenhum relatório de erro / tempo limite no console, mas o cursor não pode mais se mover.
Ao entrar wpara verificar os usuários de login, alguns usuários de zumbis estão lá, e eu tenho que matá-los manualmente.
Isso é muito chato. Alguém pode me ajudar?
screen
. Talvez seja algum tipo de problema de tempo limite.screen
ajuda a manter o programa em execução. Infelizmente, às vezes eu tenho que trabalhar no servidor remoto :(screen
apenas? Ele pode resolver o problema de conexão perdida? Nãoscreen -S screenName
? Eu sempre uso a tela com-S
e-r
screen
. Você parece já sabe que;)Respostas:
O daemon ssh (sshd), que executa no lado do servidor, fecha a conexão do lado do servidor se o cliente ficar silencioso (ou seja, não envia informações). Para evitar a perda de conexão, instrua o cliente ssh a enviar um sinal de vida útil ao servidor de vez em quando.
A configuração para isso está no arquivo
$HOME/.ssh/config
, crie o arquivo se ele não existir (o arquivo de configuração não deve ser legível pelo mundo, portanto, executechmod 600 ~/.ssh/config
após a criação do arquivo). Para enviar o sinal a cada quatro minutos (240 segundos) para o host remoto, coloque o seguinte nesse arquivo de configuração:Para ativar o envio de um sinal keep-alive para todos os hosts, coloque o seguinte conteúdo no arquivo de configuração:
fonte
ServerAliveInterval
enquanto o servidor usaClientAliveInterval
. Que bagunça.Eu queria uma solução única:
Armazenado em um alias:
Agora pode se conectar assim:
fonte
Host *
&ServerAliveInterval 240
(ou especificar o nome do host, se você o desejar apenas[email protected]
como na resposta de rockymonkey555? Definir um alias não parece mais fácil de forma alguma.alias ssh='ssh -o ServerAliveInterval=60'
ServerAliveInterval
para60
, ótimo. No entanto, o uso de um alias do bash quando você poderia estar usando.ssh/config
é simplesmente bobo.Para aqueles que se perguntam, @ edward-coast
Se você deseja definir o keep alive para o servidor , adicione-o a
/etc/ssh/sshd_config
:fonte
ClientAliveInterval
para deixar o servidor verificar se o cliente está ativo ou devo deixar o cliente "executar ping" no servidorServerAliveInterval
repetidamente? Ambos não parece fazer sentidoClientAliveInterval
o servidor se desejar que o servidor desconecte em conexões mortas que não respondem e você poderá personalizar com que frequência e quando isso acontecer.FYI Putty Os usuários podem definir as opções aqui
fonte
Podemos manter nossa conexão ssh ativa, seguindo as configurações globais
Adicione a seguinte linha ao
/etc/ssh/ssh_config
arquivo:fonte