Não é possível usar o autossh em segundo plano, mesmo com caminho absoluto

7

Eu adoraria configurar o autossh para ser executado na inicialização, adicionando-o a /etc/rc.local .

Este comando funciona:

autossh -i /root/.ssh/id_rsa -R 2522:localhost:22 user@address

Mas, se eu adicionar a opção -f

autossh -f -i /root/.ssh/id_rsa -R 2522:localhost:22 user@address

A sessão ssh não foi iniciada.

Como você pode ver, estou usando um caminho absoluto para o meu arquivo de identidade, de modo que este parece ser um problema diferente daquele declarado aqui: autossh em segundo plano não funciona

De /var/log/syslog :

Oct 18 11:08:39 raspberrypi autossh[2417]: starting ssh (count 1)
Oct 18 11:08:39 raspberrypi autossh[2417]: ssh child pid is 2418
Oct 18 11:08:39 raspberrypi autossh[2417]: ssh exited with status 0; autossh exiting

Eu estou usando isso com o debian wheezy em um pi de framboesa, versão 1.4c do autossh.

Será que está passando a opção -f para o ssh?

    
por Zagorax 18.10.2013 / 11:18

1 resposta

14

Quando você inicia o autossh sem -f , você obtém um shell. Enquanto o shell está funcionando, você recebe o encaminhamento de porta. Após o logout, o ssh termina com o código de saída 0 e o autossh sabe que não precisa iniciar a sessão ssh novamente.

Quando você inicia o autossh com -f , ele passa -f para ssh também. O ssh é executado em segundo plano e não fornece um shell. Como você não especificou nenhum outro sinalizador ou comando remoto, o ssh sai imediatamente com status 0 (nada a fazer) e o auto-reinício não o inicia novamente.

Basta adicionar a opção -N para evitar:

-N      Do not execute a remote command.  This is useful for just forwarding
        ports (protocol version 2 only)

Assim:

autossh -f -N -i /root/.ssh/id_rsa -R 2522:localhost:22 user@address
    
por 18.10.2013 / 12:51

Tags