systemdのユニットでsshuttleをするとパスフレーズを読み取れなくて起動しない
systemd-ask-password を SSH_ASKPASS と組み合わせて使えば動いた。ssh-agent が動作していればパスフレーズの入力を促されるのは最初の1回だけとなるので副作用なく利用できる。
Environment=SSH_ASKPASS=systemd-ask-passwordこのとき —user オプションを付けようとすると、SSH_ASKPASS は引数を解釈してくれないようでエラーになった。また、手元の端末で確認する場合、ssh は tty を読めるのでSSH_ASKPASS_REQUIRE が無ければ SSH_ASKPASS を参照しない。
$ export SSH_ASKPASS_REQUIRE=prefer$ export SSH_ASKPASS="systemd-ask-password --user"$ ssh -T git@github.comssh_askpass: exec(systemd-ask-password --user): No such file or directoryパスフレーズが必要な場面でユニットの実行が停止するので、入力する側は systemd-tty-ask-password-agent を使って接続する。
systemd-tty-ask-password-agent --query