我试图在通过 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 登录时,未设置 $XDG_RUNTIME_DIR 和 $DBUS_SESSION_BUS_ADDRESS,因为我已在主机的 SSH 服务器配置中关闭了 PAM 系统。
sudo nano /etc/ssh/sshd.config
和设置
UsePAM yes
修复。
显然,控制这些变量的是PAM系统。