LINUX.ORG.RU
ФорумAdmin

Не запускается autossh через Cron

 , ,


0

1

Коллеги, добрый вечер!

Подскажите, получаю в syslog вот такой текст после перезагрузки сервера под Ubuntu 18.04 LTS Server:

Sep  6 17:40:37 j5005 CRON[1033]: (vlad) CMD (/usr/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -o "ExitOnForwardFailure=yes" -N -R 10090:localhost:10090 ssh-t@zz.zzz.zzz.zzz)
Sep  6 17:40:37 j5005 CRON[1035]: (vlad) CMD (/usr/bin/autossh -M 0 -o "serverAliveInterval 30" -o "ServerAliveCountMax 3" -o "ExitOnForwardFailure=yes" -N -R 8090:localhost:8090 ssh-t@zz.zzz.zzz.zzz)
Sep  6 17:40:37 j5005 CRON[1036]: (vlad) CMD (/usr/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -o "ExitOnForwardFailure=yes" -N -R 2222:localhost:22 ssh-t@zz.zzz.zzz.zzz)
Sep  6 17:40:37 j5005 autossh[1035]: port set to 0, monitoring disabled
Sep  6 17:40:38 j5005 autossh[1035]: starting ssh (count 1)
Sep  6 17:40:38 j5005 autossh[1035]: ssh child pid is 1046
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: Chain INPUT (policy ACCEPT)
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: target     prot opt source               destination
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: sshguard   all  --  0.0.0.0/0            0.0.0.0/0
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: Chain FORWARD (policy ACCEPT)
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: target     prot opt source               destination
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: Chain OUTPUT (policy ACCEPT)
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: target     prot opt source               destination
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: Chain sshguard (1 references)
Sep  6 17:40:38 j5005 sshguard-journalctl[1085]: target     prot opt source               destination
Sep  6 17:40:38 j5005 autossh[1033]: port set to 0, monitoring disabled
Sep  6 17:40:38 j5005 autossh[1033]: starting ssh (count 1)
Sep  6 17:40:38 j5005 autossh[1033]: ssh child pid is 1052
Sep  6 17:40:38 j5005 autossh[1033]: ssh exited prematurely with status 255; autossh exiting
Sep  6 17:40:38 j5005 autossh[1035]: ssh exited prematurely with status 255; autossh exiting
Sep  6 17:40:39 j5005 systemd[1431]: Listening on GnuPG cryptographic agent (ssh-agent emulation).
Sep  6 17:41:39 j5005 systemd[1752]: Listening on GnuPG cryptographic agent (ssh-agent emulation).

Т.е. запускаю через autossh ssh-туннель к внешнему серверу. В ручном режиме, если запускать через «терминал», то все работает, а через Cron как-то не получается.

Как запускается в Cron:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin
@reboot /usr/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -o "ExitOnForwardFailure=yes" -N -R 2222:localhost:22 ssh-t@zz.zzz.zzz.zzz

Чую, что где-то что-то не так. Но не могу понять где...


Дайте autossh опцию ″-f″ и укажите через ″-i″ полный путь к файлу с ключём.

mky ★★★★★
()

Чую, что где-то что-то не так. Но не могу понять где...

В таких ситуациях (нормальная работа скрипта в терминале и проблемы с запуском по cron) самая распространенная причина проблем - разница значений системных переменных и в первую очередь, переменной PATH.

Serge10 ★★★★★
()
Ответ на: комментарий от mky

Прописал следующим образом строку: @reboot /usr/bin/autossh -f-M 0 -o «ServerAliveInterval 30» -o «ServerAliveCountMax 3» -o «ExitOnForwardFailure=yes» -N -R 2222:localhost:22 ssh-t@zz.zzz.zzz.zzz -i /home/vlad/.ssh/id_rsa

Верно? Попробовать пока не могу, т.к. сижу через него :)

kvv213
() автор топика
Ответ на: комментарий от kvv213

home/vlad/.ssh

Cron от какого пользователя у Вас запускается? Просто обычно порты ниже 1024 доступны только root, а Вы, насколько я вижу, пытаетесь под обычным пользователем туннель поднимать...

Serge10 ★★★★★
()
Ответ на: комментарий от Serge10

Крон запускается от обычного пользователя, не root.

Порты ниже 1024 берутся с сервера где запускается туннель, а на удаленном сервере как раз берутся порты свыше 1024. Т.е. в данном примере 22 берется с сервера где запускается, а организуется порт 2222 на удаленном сервере.

kvv213
() автор топика
Ответ на: комментарий от kvv213

Господа, все получилось, все заработало. Спасибо. Только непонятно какой рецепт помог :)

kvv213
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.