SSHを介してログインしてユーザースコープサービスを設定しようとした後、$XDG_RUNTIME_DIRと$DBUS_SESSION_BUS_ADDRESSがないのはなぜですか?

SSHを介してログインしてユーザースコープサービスを設定しようとした後、$XDG_RUNTIME_DIRと$DBUS_SESSION_BUS_ADDRESSがないのはなぜですか?

SSH経由でログインした後にユーザースコープサービスを設定しようとしていますが、

systemctl --user enable wallpaper.timer

問題のユーザーとしてSSH経由でログインしても、これらのエラーが発生します。

Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)

env特定の環境変数が設定されていないことを確認してください。しかし、何らかの理由で以下が機能します。

sudo systemctl --machine=<user>@.host --user enable wallpaper.timer

これは迷惑でバイパスのように見えます。私のユーザー環境変数にアクセスするには、sudoを実行する必要があります。これで、ルートサービスと設定を使用するよりも、この方法でサービスを設定することには意味がありませんUser=<username>

SSHユーザーアカウントにログインして$XDG_RUNTIME_DIRと$DBUS_SESSION_BUS_ADDRESSを設定するにはどうすればよいですか?私はこれを試して、ssh同じssh -t結果を得ました。

ベストアンサー1

SSH経由でログインすると、ホストのSSHサーバー構成でPAMシステムの電源を切って$XDG_RUNTIME_DIRと$DBUS_SESSION_BUS_ADDRESSは設定されません。

sudo nano /etc/ssh/sshd.config

と設定

UsePAM yes

修理する。

明らかにこれらの変数を制御するのはPAMシステムです。

おすすめ記事