suspensão do túnel SSH

6

Estou tentando usar um túnel SSH de casa por um computador na universidade para acessar alguns artigos.

Ambas as máquinas estão executando o Ubuntu 11.04. A máquina da universidade executa openssh-server .

Em casa, segui estas instruções:

  1. abra uma sessão ssh:

    ssh -D 9999 -C user@my_addr.com 
    
  2. Em seguida, configurei o Firefox para a conexão do usuário SOCKS5 na porta 9999 de localhost .

Isso funciona por algum tempo. Então, de repente, suspende a conexão e o terminal apenas congela.

O que estou perdendo aqui?

    
por lcguida 11.05.2012 / 14:28

4 respostas

2

Também sugiro usar o autossh com script while, por exemplo:

Eu tenho isso no crontab:

@reboot while true; do sleep 10; autossh -i /some/location_not_default.pem -D 9999 -L 1028:localhost:3128; done

enquanto tentará sempre conectar-se e estabelecer a conexão, criar uma porta de socks e informar a porta do squid. Isso provou ser muito estável para mim.

    
por 16.05.2012 / 18:31
2

Você pode tentar definir as variáveis ClientAliveInterval e ClientAliveCountMax em seu arquivo de configuração sshd para valores que combinam com você.

Do manual:

ClientAliveInterval 

Sets a timeout interval in seconds after which if no data has been received
from the client, secshd will send a message through the encrypted channel 
to request a response from the client.
The default is 0, indicating that these messages will not be sent to the 
client. This option applies to protocol version 2 only.
    
por 17.07.2012 / 11:30
2

Experimente autossh . Ele detecta conexões suspensas e se reconecta automaticamente. Eu usei em uma situação semelhante no passado e funcionou bem para mim.

EDITAR

  1. Eu costumava executá-lo em screen , que tem dois benefícios: executar (mais ou menos) em segundo plano, e possível retornar à sessão mais tarde para verificar seu status e depurar se necessário, assim:

    screen -d -m -S my-autossh-tunnel autossh your_autossh_args
    

    Isso iniciará a tela em segundo plano. Se você quiser verificar o processo autossh , poderá se reconectar a esta sessão screen com screen -R my-autossh-tunnel

  2. Eu usei passphrase vazia por conveniência, mas para maior segurança usei as seguintes opções nas authorized_keys no final remoto:

    command="/bin/false",no-agent-forwarding,no-X11-forwarding,no-pty'
    

    Desta forma, o túnel pode ser estabelecido com a chave, e o shell não pode ser usado para qualquer outra coisa.

por 16.05.2012 / 16:40
1

Eu tive o mesmo problema com o uso do VNC sobre o túnel SSH. Os congelamentos ocorreram com frequência, tanto com putty (windows) quanto openssh (linux).

Com putty eu copiei o perfil de conexão e mudei algumas opções apenas para ver o que aconteceu e não mais congela! As mudanças na massa são:

Conexão: UNCHECK "desativa o algoritmo de Nagle"   (Deixei "enable TCP keepalives" marcado e "segundos entre keepalives" em 30) SELECT "versão do protocolo internet" IPv4 (em vez de "auto")

Conexão - SSH: VERIFIQUE "Ativar compactação"

Eu não tenho certeza de qual foi a opção, mas estou feliz agora. Eu não consigo congelar, mas quando voltei para o perfil antigo para checar, ele congelou em poucos segundos.

Os congelamentos ocorreram principalmente ao enviar grandes atualizações sobre o VNC, como a rolagem de uma janela. Talvez o algoritmo Nagle desativado tenha inundado o servidor com muitos pacotes pequenos ou talvez porque o ipv6 foi desativado no servidor VNC remoto, mas não nos outros hosts. Isso exigiria mais alguns testes com as opções individuais para descobrir isso.

    
por 05.03.2013 / 16:04