Skip to content

systemdで安全にパスワードを扱う

systemd にはパスワードを扱う2つのコマンドがある。

  • systemd-creds
  • systemd-ask-password

systemd-creds は暗号化したファイルにパスワードを保存しておいて、後でそれを展開して使うもの。systemd-ask-password は他のセッションでパスワードを入力させるためのもの。入力待ちのパスワードは systemd-tty-ask-password-agent で確認または応答できる。

systemd-credsLoadCredentialEncrypted=SetCredentialEncrypted= で取り出せる。

LoadCredentialEncrypted=name:/etc/credstore.encrypted/name

標準的には /etc/credstore.encrypted 以下に暗号化したファイルを置くのが推奨らしく、その場合は相対パスでアクセスできる。また、name とファイル名が同じ場合はファイル名部分も省略可能。

LoadCredentialEncrypted=name

この辺りについての詳細はユーザー権限でsystemd-credsを使うのほうで書いたのでそちらを見るといい。

v255まではrootしか使えなかったが、per-user encrypted credentials—user オプションを追加するPRがマージされてv257で利用可能になった。