systemd でパスワード保護された ssh および gpg キーを使用できるようにする

systemd でパスワード保護された ssh および gpg キーを使用できるようにする

外部サーバー上のシステムの sftp バックアップを実行するために Obnam バックアップを設定しました。コマンドを実行すると、正常に実行されます。

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 キーを使用するようになった場合、同じ問題が GPG キーでも発生すると思われます。

それで、現時点での疑問は、どのようにして systemd にそのようなパスワードへのアクセスを許可するかということです。手動で実行するときに使用する ssh-agent とキーリングに相当するもの。

関連情報