Назад | Перейти на главную страницу

Невозможно использовать autossh в фоновом режиме даже с абсолютным путем

Я бы хотел настроить autossh для запуска при загрузке, добавив его в /etc/rc.local.

Эта команда работает:

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

Но если я добавлю -f вариант

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

Сеанс ssh не запущен.

Как видите, я использую абсолютный путь для своего файла удостоверений, поэтому, похоже, это проблема, отличная от указанной здесь: autossh в фоновом режиме не работает

Из /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

Я использую его с debian wheezy на raspberry pi, autossh версии 1.4c.

Может быть, он передает -f вариант ssh вместо этого?

При запуске autossh без -f, вы получите ракушку. Пока оболочка работает, вы получаете переадресацию портов. После выхода из системы ssh завершается с кодом выхода 0, и autossh знает, что снова запускать сеанс ssh не нужно.

Когда вы запускаете autossh с -f, это проходит -f по ssh тоже. Тогда ssh работает в фоновом режиме и не предоставляет оболочку. Поскольку вы не указали другие флаги или удаленную команду, ssh немедленно завершает работу со статусом 0 (ничего не делать), а autossh не запускает его заново.

Просто добавь -N возможность избежать этого:

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

Как это:

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