Como fazer massa para não interromper minha sessão depois de algum tempo?

34

Cada vez que puttya sessão é fechada após algum tempo, se estiver ociosa.

Não há timeparâmetro na massa, então como posso manter minha puttysessão ssh sempre ativa?

cnd
fonte

Respostas:

15

Outra coisa a verificar é se o seu sistema está configurando a variável de ambiente TMOUT. Para verificar isso, você pode simplesmente fazer:

env | grep TMOUT

ou

echo $TMOUT

Se estiver definido, você pode alterá-lo ou desmarcá-lo. Para alterar o valor:

export TMOUT=3600

Onde o número é o número de segundos até que você se desconecte. Caso contrário, desative-o para desativar o recurso:

unset TMOUT

Observe que o administrador do sistema pode ter definido isso por razões de segurança. Portanto, se você não é o administrador do sistema, verifique isso antes de alterar qualquer coisa.

OldTimer
fonte
48

Ative o keep-alives do SSH alterando a seguinte configuração para um valor positivo:

Página Conexão da caixa de diálogo Configuração PuTTY

Um valor de 300 deve ser suficiente na maioria dos casos. (5 minutos.) Isso faz com que o PuTTY envie pacotes nulos SSH para o host remoto periodicamente, para que a sessão não atinja o tempo limite.

Observe que não queremos a SO_KEEPALIVEopção mais baixa nessa página. Esse é um mecanismo de nível muito inferior que é melhor usado apenas quando o protocolo no nível do aplicativo não possui seu próprio mecanismo de manutenção de atividade. O SSH usa, portanto, não devemos usar keepalives TCP neste caso.

Existem outras coisas que podem fazer com que as conexões caiam, mas é uma primeira coisa sólida a tentar. Se não funcionar, é necessário analisar outras coisas: tempos limite da VPN, tempos limite do roteador, alterações de configurações no servidor SSH remoto, conexões inadequadas etc.

Warren Young
fonte
3
Como alternativa, execute algo que produz saída contínua, como topquando você estiver ausente.
LawrenceC
11
@ultrasawblade: Essa é uma correção de fita adesiva; trata apenas o sintoma, mas não trata do verdadeiro problema.
Kevin M
Esta configuração se aplica à CLI do Windows? Quero dizer, em vez de salvar sessões, crio links para putty.exe passando credenciais de login como argumentos (putty.exe host -l root -pw senha). Caso contrário, existe algum argumento para aplicar essa opção através da CLI?
Mc Kernel
3
Essa é uma excelente solução, especialmente quando você está trabalhando em uma conexão instável e não precisa fazer uma única alteração no servidor (ao contrário da solução aceita).
Itoctopus
Alguém sabe como especificar isso via linha cmd?
Janac Meena
8

Além das outras respostas, sugiro executar screenpara poder ter o gerenciamento de sessões, mesmo que a massa termine (conexão morrendo, vpn caindo, etc.).

Arcege
fonte
6

Marque a seguinte opção no PuTTY:

insira a descrição da imagem aqui

Franck Dernoncourt
fonte
Infelizmente, SO_KEEPALIVE parece ser enviado apenas a cada duas horas (pelo menos por padrão), então um nome melhor para eles seria "verifique se está morto" LOL
rogerdpack
3

Basta executar isso na sua massa para garantir que você ative sua sessão a cada 10 minutos.

 while true; do date; sleep 600; done
KKN
fonte
Eu sempre executo isso no meu servidor e ele não funciona.
cokedude 14/11
1

Se nenhuma das opções acima não ajudou,
você deve alterar as configurações do sshd do seu sistema!
Observe que, você precisará de permissões de root para isso!

Edite seu sshd_config arquivo, no meu caso, ele foi localizado/etc/ssh/sshd_config

o conteúdo era:

ClientAliveInterval 300  
ClientAliveCountMax 0

mudar para:

ClientAliveInterval 6000  
ClientAliveCountMax 3

Não esqueça

service sshd restart
oi-zir
fonte
1

Você pode usar o topcomando no prompt do shell. Isso manterá sua sessão viva.

Piyush Agrawal
fonte
Isso parece uma solução alternativa e não uma solução.
Kusalananda
@ Kusalananda Acho que as soluções alternativas também podem ser soluções.
peterh diz restabelecer Monica
0

No Connection>SSHmenu de massa , use o seguinte valor como Remote command: bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT').

escravo
fonte