让 systemd 使用受密码保护的 ssh 和 gpg 密钥

让 systemd 使用受密码保护的 ssh 和 gpg 密钥

我已设置 Obnam 备份以在外部服务器上对系统进行 sftp 备份。当我运行命令时,它会正确执行。

它使用我的 ssh 密钥连接到 sftp。它使用我的 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。

相关内容