Conexão SSH Persistente

3

Eu uso este comando para fazer um túnel SSH para um servidor remoto.

ssh -D localproxy:9999 -C [email protected]

Eu também fiz um script de shell usando o comando expect para processar automaticamente todo o processo, fornecendo também a senha automaticamente.

O problema é que eu tenho que executar manualmente este script para fazer uma conexão quando o PC é iniciado e também, quando o PC vai dormir, esta conexão quebra e eu corro este script novamente.

Existe alguma maneira de torná-lo persistente, independentemente do estado da máquina?

    
por 8thperson 11.04.2015 / 09:35

2 respostas

5

Existem várias razões que podem fazer com que uma conexão falhe, mesmo usando keepalives e coisas do tipo; então você deve pensar em um mecanismo para reiniciá-lo automaticamente.

O que eu faria é:

  1. configure seu ponto de extremidade SSH para que você possa efetuar login com uma chave no modo sem senha: Como posso configurar o login SSH sem senha?

  2. Prepare um script que faça a conexão em um loop infinito --- reiniciando se falhar; use "keepalive" mesmo assim ;

  3. inicie na inicialização: Como faço para iniciar um programa na inicialização?

Observe que provavelmente você precisará usar su -c (ou sudo ) para executar o ssh como seu usuário --- os comandos em /etc/rc.local são executados como root. (Obrigado @muru).

    
por Rmano 11.04.2015 / 10:11
4

Você diz que deseja que a conexão seja reiniciada automaticamente se estiver desconectada. Existe um pacote para fazer isso: autossh . Veja, por exemplo aqui para saber como usá-lo. Esse link também possui um script de inicialização para que seja reiniciado na inicialização, embora isso seja relativamente trivial; é o reinício da falha de conexão que é difícil.

    
por abligh 11.04.2015 / 12:32

Tags