Я настроил резервное копирование Obnam, чтобы сделать резервную копию sftp системы на внешнем сервере. Когда я запускаю команду, она выполняется правильно.
Он подключается к sftp с помощью моего ключа ssh. И он шифрует содержимое с помощью моего ключа GPG.
Я пытаюсь заставить systemd выполнять его автоматически каждый день.
Итак, у меня есть backup.servive
который выглядит так:
[Unit]
Description="Online Backup"
Requires=network-online.target
After=network-online.target
[Service]
User=my_user
ExecStart=/path/to/my/backup/script
И тогда я также создал модуль таймера backup.timer
:
[Unit]
Description="Run backup daily and on boot"
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
[Install]
WantedBy=timers.target
Моя проблема сейчас заключается в том, как интегрировать мои ключи ssh и gpg.
Если я запускаю службу с помощью systemctl
то сценарий (который работает при запуске вручную) теперь завершается ошибкой с исключением SSH, которое, по моему мнению, связано с отсутствием доступа к моему паролю к такому ключу.
Я предполагаю, что та же проблема возникнет с ключом GPG, если скрипт дойдет до точки, где он использует его для шифрования содержимого.
Итак, на данный момент вопрос состоит в том, как предоставить systemd доступ к таким паролям? Эквивалент ssh-agent и keyring, который я использую, когда запускаю его вручную.