Я бы хотел настроить 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