Question Impossible d'utiliser autossh en arrière-plan, même avec un chemin absolu


J'aimerais configurer autossh pour qu'il s'exécute au démarrage en l'ajoutant à /etc/rc.local.

Cette commande fonctionne:

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

Mais si j'ajoute le -f option

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

La session SSH n'est pas démarrée.

Comme vous pouvez le constater, j'utilise un chemin absolu pour mon fichier d'identité. Il semble donc s'agir d'un problème différent de celui indiqué ici: autossh en arrière-plan ne fonctionne pas

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

Je l’utilise avec debian Wheezy sur un framboise pi, version autossh 1.4c.

Se pourrait-il qu'il passe le -f option de ssh à la place?


6
2017-10-18 09:18


origine




Réponses:


Quand vous commencez autossh sans -f, vous obtenez une coquille. Pendant que le shell fonctionne, vous obtenez une redirection de port. Une fois que vous vous êtes déconnecté, ssh se termine avec le code de sortie 0 et autossh sait qu'il n'est pas nécessaire de relancer la session ssh.

Quand tu commences avec autossh -f, ça passe -f ssh aussi. ssh est alors en cours d'exécution en arrière-plan et ne vous donne pas de shell. Comme vous n'avez spécifié aucun autre indicateur ni commande à distance, ssh se ferme immédiatement avec le statut 0 (rien à faire) et autossh ne le redémarre pas.

Il suffit d'ajouter -N option pour l'éviter:

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

Comme ça:

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

13
2017-10-18 10:51



Cela semble fonctionner, mais contredit ce que dit la page de manuel: -f causes autossh to drop to the background before running ssh. The -f flag is stripped from arguments passed to ssh. - Jay K