Screen e SSH Tunnel - Como a sessão de tela pode morrer?

1

Quando inicio meu xsession, configuro meu túnel SSH para o meu VPS.

Aqui está o script que é executado no login:

matt@HY731AA:~$ more dotfiles/startssh.sh 
#!/bin/sh

ssh-add ~/.ssh/id_rsa
screen -dmS ssh /bin/bash -c ~/dotfiles/keeptunnel.bash
exit

Solicitar a inserção da chave e o terminal voila fecha ..

E aqui está o keeptunnel.bash

matt@HY731AA:~$ more dotfiles/keeptunnel.bash 
#!/bin/bash

while [ true ]; 
  do    /usr/bin/ssh lin1tunnels > /home/matt/lin1tunnel.log 2>&1 
  sleep 0.4   
  done;

No login parece que tudo funciona, túnel é configurado, no entanto eu deixo meu computador ligado 24/7 através de várias suspensões / suspensões etc. O problema é ocasionalmente o túnel SSH está inoperante, então eu acho que é apenas reconectar ou internet / o servidor está inativo, no entanto, fazer uma tela -list mostra que a sessão selecionada é (Morto ???) e para limpar a tela.

O que eu não consigo entender é dado o loop no keeptunnels não há nenhuma maneira possível que a tela seja capaz de sair? Eu tenho ConnectTimeout 8 e ServerAliveInterval 5 em .ssh / config para lin1tunnels, no entanto, duvido que seja a origem do problema, pois a sessão filtrada está inativa.

Idéias de por que a sessão filtrada está morrendo?

    
por Mâtt Frëëman 11.06.2011 / 11:34

1 resposta

1

Uma sessão "em tela" tela geralmente significa que o processo do servidor tela travou. Do dmesg ou /var/log/syslog reporta quaisquer erros de segfaults ou falta de memória?

Você poderia substituir tela por tmux ou dtach , ou até mesmo remover tela por apenas usar ~/dotfiles/keeptunnel.bash & no seu script startssh.sh .

... na verdade, os dois scripts podem ser combinados:

#!/bin/sh
ssh-add ~/.ssh/id_rsa
while true; do
    ssh -v -N lin1tunnels
    sleep 0.4
done > ~/lin1tunnel.log 2>&1 &
    
por 11.06.2011 / 13:20